// instruction decode
void cpu_65c02_execute(struct cpu_65c02 *self) {
- switch (cpu_65c02_fb(self)) {
+ switch (cpu_65c02_fetch_byte(self)) {
case 0x00:
cpu_65c02_brk(self);
break;
case 0x01:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0x02:
cpu_65c02_ill22(self);
cpu_65c02_ill11(self);
break;
case 0x04:
- cpu_65c02_tsb(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_tsb(self, cpu_65c02_ea_zero_page(self));
break;
case 0x05:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0x06:
- cpu_65c02_asl(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_asl(self, cpu_65c02_ea_zero_page(self));
break;
case 0x07:
- cpu_65c02_rmb(self, 1, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 1, cpu_65c02_ea_zero_page(self));
break;
case 0x08:
cpu_65c02_ph(self, self->regs.byte.p);
break;
case 0x09:
- cpu_65c02_ora(self, cpu_65c02_fb(self));
+ cpu_65c02_ora(self, cpu_65c02_fetch_byte(self));
break;
case 0x0a:
cpu_65c02_asl(self, CPU_65C02_EA_A);
cpu_65c02_ill11(self);
break;
case 0x0c:
- cpu_65c02_tsb(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_tsb(self, cpu_65c02_ea_absolute(self));
break;
case 0x0d:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0x0e:
- cpu_65c02_asl(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_asl(self, cpu_65c02_ea_absolute(self));
break;
case 0x0f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 1, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 1, cpu_65c02_ea_relative(self));
}
break;
case 0x10:
- cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_N), cpu_65c02_ea_rel(self));
+ cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_N), cpu_65c02_ea_relative(self));
break;
case 0x11:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0x12:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0x13:
cpu_65c02_ill11(self);
break;
case 0x14:
- cpu_65c02_trb(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_trb(self, cpu_65c02_ea_zero_page(self));
break;
case 0x15:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0x16:
- cpu_65c02_asl(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_asl(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x17:
- cpu_65c02_rmb(self, 2, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 2, cpu_65c02_ea_zero_page(self));
break;
case 0x18:
cpu_65c02_cl(self, (1 << CPU_65C02_REG_P_BIT_C));
break;
case 0x19:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0x1a:
cpu_65c02_inc(self, CPU_65C02_EA_A);
cpu_65c02_ill11(self);
break;
case 0x1c:
- cpu_65c02_trb(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_trb(self, cpu_65c02_ea_absolute(self));
break;
case 0x1d:
- cpu_65c02_ora(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_ora(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0x1e:
- cpu_65c02_asl(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_asl(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0x1f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 2, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 2, cpu_65c02_ea_relative(self));
}
break;
case 0x20:
- cpu_65c02_jsr(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_jsr(self, cpu_65c02_ea_absolute(self));
break;
case 0x21:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0x22:
cpu_65c02_ill22(self);
cpu_65c02_ill11(self);
break;
case 0x24:
- cpu_65c02_bit(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_bit(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0x25:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0x26:
- cpu_65c02_rol(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rol(self, cpu_65c02_ea_zero_page(self));
break;
case 0x27:
- cpu_65c02_rmb(self, 4, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 4, cpu_65c02_ea_zero_page(self));
break;
case 0x28:
cpu_65c02_plp(self);
break;
case 0x29:
- cpu_65c02_and(self, cpu_65c02_fb(self));
+ cpu_65c02_and(self, cpu_65c02_fetch_byte(self));
break;
case 0x2a:
cpu_65c02_rol(self, CPU_65C02_EA_A);
cpu_65c02_ill11(self);
break;
case 0x2c:
- cpu_65c02_bit(self, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_bit(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0x2d:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0x2e:
- cpu_65c02_rol(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_rol(self, cpu_65c02_ea_absolute(self));
break;
case 0x2f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 4, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 4, cpu_65c02_ea_relative(self));
}
break;
case 0x30:
- cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_N), cpu_65c02_ea_rel(self));
+ cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_N), cpu_65c02_ea_relative(self));
break;
case 0x31:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0x32:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0x33:
cpu_65c02_ill11(self);
break;
case 0x34:
- cpu_65c02_bit(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_bit(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0x35:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0x36:
- cpu_65c02_rol(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_rol(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x37:
- cpu_65c02_rmb(self, 8, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 8, cpu_65c02_ea_zero_page(self));
break;
case 0x38:
cpu_65c02_se(self, (1 << CPU_65C02_REG_P_BIT_C));
break;
case 0x39:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0x3a:
cpu_65c02_dec(self, CPU_65C02_EA_A);
cpu_65c02_ill11(self);
break;
case 0x3c:
- cpu_65c02_bit(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_bit(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0x3d:
- cpu_65c02_and(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_and(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0x3e:
- cpu_65c02_rol(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_rol(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0x3f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 8, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 8, cpu_65c02_ea_relative(self));
}
break;
case 0x40:
cpu_65c02_rti(self);
break;
case 0x41:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0x42:
cpu_65c02_ill22(self);
cpu_65c02_ill23(self);
break;
case 0x45:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0x46:
- cpu_65c02_lsr(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_lsr(self, cpu_65c02_ea_zero_page(self));
break;
case 0x47:
- cpu_65c02_rmb(self, 0x10, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 0x10, cpu_65c02_ea_zero_page(self));
break;
case 0x48:
cpu_65c02_ph(self, self->regs.byte.a);
break;
case 0x49:
- cpu_65c02_eor(self, cpu_65c02_fb(self));
+ cpu_65c02_eor(self, cpu_65c02_fetch_byte(self));
break;
case 0x4a:
cpu_65c02_lsr(self, CPU_65C02_EA_A);
cpu_65c02_ill11(self);
break;
case 0x4c:
- cpu_65c02_jmp(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_jmp(self, cpu_65c02_ea_absolute(self));
break;
case 0x4d:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0x4e:
- cpu_65c02_lsr(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_lsr(self, cpu_65c02_ea_absolute(self));
break;
case 0x4f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 0x10, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 0x10, cpu_65c02_ea_relative(self));
}
break;
case 0x50:
- cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_V), cpu_65c02_ea_rel(self));
+ cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_V), cpu_65c02_ea_relative(self));
break;
case 0x51:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0x52:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0x53:
cpu_65c02_ill11(self);
cpu_65c02_ill24(self);
break;
case 0x55:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0x56:
- cpu_65c02_lsr(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_lsr(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x57:
- cpu_65c02_rmb(self, 0x20, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 0x20, cpu_65c02_ea_zero_page(self));
break;
case 0x58:
cpu_65c02_cl(self, (1 << CPU_65C02_REG_P_BIT_I));
break;
case 0x59:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0x5a:
cpu_65c02_ph(self, self->regs.byte.y);
cpu_65c02_ill38(self);
break;
case 0x5d:
- cpu_65c02_eor(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_eor(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0x5e:
- cpu_65c02_lsr(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_lsr(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0x5f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 0x20, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 0x20, cpu_65c02_ea_relative(self));
}
break;
case 0x60:
cpu_65c02_rts(self);
break;
case 0x61:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0x62:
cpu_65c02_ill22(self);
cpu_65c02_ill11(self);
break;
case 0x64:
- cpu_65c02_st(self, 0, cpu_65c02_ea_zpg(self));
+ cpu_65c02_st(self, 0, cpu_65c02_ea_zero_page(self));
break;
case 0x65:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0x66:
- cpu_65c02_ror(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_ror(self, cpu_65c02_ea_zero_page(self));
break;
case 0x67:
- cpu_65c02_rmb(self, 0x40, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 0x40, cpu_65c02_ea_zero_page(self));
break;
case 0x68:
cpu_65c02_pl(self, CPU_65C02_EA_A);
break;
case 0x69:
- cpu_65c02_adc(self, cpu_65c02_fb(self));
+ cpu_65c02_adc(self, cpu_65c02_fetch_byte(self));
break;
case 0x6a:
cpu_65c02_ror(self, CPU_65C02_EA_A);
cpu_65c02_ill11(self);
break;
case 0x6c:
- cpu_65c02_jmp(self, cpu_65c02_ea_abs_ind(self));
+ cpu_65c02_jmp(self, cpu_65c02_ea_absolute_indirect(self));
break;
case 0x6d:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0x6e:
- cpu_65c02_ror(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_ror(self, cpu_65c02_ea_absolute(self));
break;
case 0x6f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 0x40, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 0x40, cpu_65c02_ea_relative(self));
}
break;
case 0x70:
- cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_V), cpu_65c02_ea_rel(self));
+ cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_V), cpu_65c02_ea_relative(self));
break;
case 0x71:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0x72:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0x73:
cpu_65c02_ill11(self);
break;
case 0x74:
- cpu_65c02_st(self, 0, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_st(self, 0, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x75:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0x76:
- cpu_65c02_ror(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_ror(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x77:
- cpu_65c02_rmb(self, 0x80, cpu_65c02_ea_zpg(self));
+ cpu_65c02_rmb(self, 0x80, cpu_65c02_ea_zero_page(self));
break;
case 0x78:
cpu_65c02_se(self, (1 << CPU_65C02_REG_P_BIT_I));
break;
case 0x79:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0x7a:
cpu_65c02_pl(self, CPU_65C02_EA_Y);
cpu_65c02_ill11(self);
break;
case 0x7c:
- cpu_65c02_jmp(self, cpu_65c02_ea_abs_idx_ind(self, self->regs.byte.x));
+ cpu_65c02_jmp(self, cpu_65c02_ea_absolute_indexed_indirect(self, self->regs.byte.x));
break;
case 0x7d:
- cpu_65c02_adc(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_adc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0x7e:
- cpu_65c02_ror(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_ror(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0x7f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbr(self, rvalue & 0x80, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbr(self, rvalue & 0x80, cpu_65c02_ea_relative(self));
}
break;
case 0x80:
- cpu_65c02_bc(self, 0, cpu_65c02_ea_rel(self));
+ cpu_65c02_bc(self, 0, cpu_65c02_ea_relative(self));
break;
case 0x81:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x));
break;
case 0x82:
cpu_65c02_ill22(self);
cpu_65c02_ill11(self);
break;
case 0x84:
- cpu_65c02_st(self, self->regs.byte.y, cpu_65c02_ea_zpg(self));
+ cpu_65c02_st(self, self->regs.byte.y, cpu_65c02_ea_zero_page(self));
break;
case 0x85:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zpg(self));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zero_page(self));
break;
case 0x86:
- cpu_65c02_st(self, self->regs.byte.x, cpu_65c02_ea_zpg(self));
+ cpu_65c02_st(self, self->regs.byte.x, cpu_65c02_ea_zero_page(self));
break;
case 0x87:
- cpu_65c02_smb(self, 1, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 1, cpu_65c02_ea_zero_page(self));
break;
case 0x88:
cpu_65c02_dec(self, CPU_65C02_EA_Y);
break;
case 0x89:
- cpu_65c02_bit_imm(self, cpu_65c02_fb(self));
+ cpu_65c02_bit_imm(self, cpu_65c02_fetch_byte(self));
break;
case 0x8a:
cpu_65c02_ld(self, CPU_65C02_EA_A, self->regs.byte.x);
cpu_65c02_ill11(self);
break;
case 0x8c:
- cpu_65c02_st(self, self->regs.byte.y, cpu_65c02_ea_abs(self));
+ cpu_65c02_st(self, self->regs.byte.y, cpu_65c02_ea_absolute(self));
break;
case 0x8d:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_abs(self));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_absolute(self));
break;
case 0x8e:
- cpu_65c02_st(self, self->regs.byte.x, cpu_65c02_ea_abs(self));
+ cpu_65c02_st(self, self->regs.byte.x, cpu_65c02_ea_absolute(self));
break;
case 0x8f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 1, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 1, cpu_65c02_ea_relative(self));
}
break;
case 0x90:
- cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_C), cpu_65c02_ea_rel(self));
+ cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_C), cpu_65c02_ea_relative(self));
break;
case 0x91:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y));
break;
case 0x92:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zpg_ind(self));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zero_page_indirect(self));
break;
case 0x93:
cpu_65c02_ill11(self);
break;
case 0x94:
- cpu_65c02_st(self, self->regs.byte.y, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_st(self, self->regs.byte.y, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x95:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0x96:
- cpu_65c02_st(self, self->regs.byte.x, cpu_65c02_ea_zpg_idx(self, self->regs.byte.y));
+ cpu_65c02_st(self, self->regs.byte.x, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.y));
break;
case 0x97:
- cpu_65c02_smb(self, 2, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 2, cpu_65c02_ea_zero_page(self));
break;
case 0x98:
cpu_65c02_ld(self, CPU_65C02_EA_A, self->regs.byte.y);
break;
case 0x99:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_abs_idx(self, self->regs.byte.y));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y));
break;
case 0x9a:
cpu_65c02_st(self, self->regs.byte.x, CPU_65C02_EA_S);
cpu_65c02_ill11(self);
break;
case 0x9c:
- cpu_65c02_st(self, 0, cpu_65c02_ea_abs(self));
+ cpu_65c02_st(self, 0, cpu_65c02_ea_absolute(self));
break;
case 0x9d:
- cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_st(self, self->regs.byte.a, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0x9e:
- cpu_65c02_st(self, 0, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_st(self, 0, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0x9f:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 2, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 2, cpu_65c02_ea_relative(self));
}
break;
case 0xa0:
- cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_fb(self));
+ cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_fetch_byte(self));
break;
case 0xa1:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0xa2:
- cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_fb(self));
+ cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_fetch_byte(self));
break;
case 0xa3:
cpu_65c02_ill11(self);
break;
case 0xa4:
- cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xa5:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xa6:
- cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xa7:
- cpu_65c02_smb(self, 4, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 4, cpu_65c02_ea_zero_page(self));
break;
case 0xa8:
cpu_65c02_ld(self, CPU_65C02_EA_Y, self->regs.byte.a);
break;
case 0xa9:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_fb(self));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_fetch_byte(self));
break;
case 0xaa:
cpu_65c02_ld(self, CPU_65C02_EA_X, self->regs.byte.a);
cpu_65c02_ill11(self);
break;
case 0xac:
- cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xad:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xae:
- cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xaf:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 4, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 4, cpu_65c02_ea_relative(self));
}
break;
case 0xb0:
- cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_C), cpu_65c02_ea_rel(self));
+ cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_C), cpu_65c02_ea_relative(self));
break;
case 0xb1:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0xb2:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0xb3:
cpu_65c02_ill11(self);
break;
case 0xb4:
- cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0xb5:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0xb6:
- cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.y)));
+ cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.y)));
break;
case 0xb7:
- cpu_65c02_smb(self, 8, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 8, cpu_65c02_ea_zero_page(self));
break;
case 0xb8:
cpu_65c02_cl(self, (1 << CPU_65C02_REG_P_BIT_V));
break;
case 0xb9:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0xba:
cpu_65c02_ld(self, CPU_65C02_EA_X, self->regs.byte.s);
cpu_65c02_ill11(self);
break;
case 0xbc:
- cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_ld(self, CPU_65C02_EA_Y, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0xbd:
- cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_ld(self, CPU_65C02_EA_A, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0xbe:
- cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_ld(self, CPU_65C02_EA_X, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0xbf:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 8, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 8, cpu_65c02_ea_relative(self));
}
break;
case 0xc0:
- cpu_65c02_cmp(self, self->regs.byte.y, cpu_65c02_fb(self));
+ cpu_65c02_cmp(self, self->regs.byte.y, cpu_65c02_fetch_byte(self));
break;
case 0xc1:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0xc2:
cpu_65c02_ill22(self);
cpu_65c02_ill11(self);
break;
case 0xc4:
- cpu_65c02_cmp(self, self->regs.byte.y, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_cmp(self, self->regs.byte.y, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xc5:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xc6:
- cpu_65c02_dec(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_dec(self, cpu_65c02_ea_zero_page(self));
break;
case 0xc7:
- cpu_65c02_smb(self, 0x10, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 0x10, cpu_65c02_ea_zero_page(self));
break;
case 0xc8:
cpu_65c02_inc(self, CPU_65C02_EA_Y);
break;
case 0xc9:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_fb(self));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_fetch_byte(self));
break;
case 0xca:
cpu_65c02_dec(self, CPU_65C02_EA_X);
cpu_65c02_wai(self);
break;
case 0xcc:
- cpu_65c02_cmp(self, self->regs.byte.y, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_cmp(self, self->regs.byte.y, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xcd:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xce:
- cpu_65c02_dec(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_dec(self, cpu_65c02_ea_absolute(self));
break;
case 0xcf:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 0x10, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 0x10, cpu_65c02_ea_relative(self));
}
break;
case 0xd0:
- cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_Z), cpu_65c02_ea_rel(self));
+ cpu_65c02_bc(self, (1 << CPU_65C02_REG_P_BIT_Z), cpu_65c02_ea_relative(self));
break;
case 0xd1:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0xd2:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0xd3:
cpu_65c02_ill11(self);
cpu_65c02_ill24(self);
break;
case 0xd5:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0xd6:
- cpu_65c02_dec(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_dec(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0xd7:
- cpu_65c02_smb(self, 0x20, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 0x20, cpu_65c02_ea_zero_page(self));
break;
case 0xd8:
cpu_65c02_cl(self, (1 << CPU_65C02_REG_P_BIT_D));
break;
case 0xd9:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0xda:
cpu_65c02_ph(self, self->regs.byte.x);
cpu_65c02_ill34(self);
break;
case 0xdd:
- cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_cmp(self, self->regs.byte.a, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0xde:
- cpu_65c02_dec(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_dec(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0xdf:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 0x20, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 0x20, cpu_65c02_ea_relative(self));
}
break;
case 0xe0:
- cpu_65c02_cmp(self, self->regs.byte.x, cpu_65c02_fb(self));
+ cpu_65c02_cmp(self, self->regs.byte.x, cpu_65c02_fetch_byte(self));
break;
case 0xe1:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx_ind(self, self->regs.byte.x)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed_indirect(self, self->regs.byte.x)));
break;
case 0xe2:
cpu_65c02_ill22(self);
cpu_65c02_ill11(self);
break;
case 0xe4:
- cpu_65c02_cmp(self, self->regs.byte.x, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_cmp(self, self->regs.byte.x, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xe5:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg(self)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self)));
break;
case 0xe6:
- cpu_65c02_inc(self, cpu_65c02_ea_zpg(self));
+ cpu_65c02_inc(self, cpu_65c02_ea_zero_page(self));
break;
case 0xe7:
- cpu_65c02_smb(self, 0x40, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 0x40, cpu_65c02_ea_zero_page(self));
break;
case 0xe8:
cpu_65c02_inc(self, CPU_65C02_EA_X);
break;
case 0xe9:
- cpu_65c02_sbc(self, cpu_65c02_fb(self));
+ cpu_65c02_sbc(self, cpu_65c02_fetch_byte(self));
break;
case 0xea:
cpu_65c02_nop(self);
cpu_65c02_ill11(self);
break;
case 0xec:
- cpu_65c02_cmp(self, self->regs.byte.x, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_cmp(self, self->regs.byte.x, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xed:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_abs(self)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute(self)));
break;
case 0xee:
- cpu_65c02_inc(self, cpu_65c02_ea_abs(self));
+ cpu_65c02_inc(self, cpu_65c02_ea_absolute(self));
break;
case 0xef:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 0x40, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 0x40, cpu_65c02_ea_relative(self));
}
break;
case 0xf0:
- cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_Z), cpu_65c02_ea_rel(self));
+ cpu_65c02_bs(self, (1 << CPU_65C02_REG_P_BIT_Z), cpu_65c02_ea_relative(self));
break;
case 0xf1:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind_idx(self, self->regs.byte.y)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect_indexed(self, self->regs.byte.y)));
break;
case 0xf2:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_ind(self)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indirect(self)));
break;
case 0xf3:
cpu_65c02_ill11(self);
cpu_65c02_ill24(self);
break;
case 0xf5:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x)));
break;
case 0xf6:
- cpu_65c02_inc(self, cpu_65c02_ea_zpg_idx(self, self->regs.byte.x));
+ cpu_65c02_inc(self, cpu_65c02_ea_zero_page_indexed(self, self->regs.byte.x));
break;
case 0xf7:
- cpu_65c02_smb(self, 0x80, cpu_65c02_ea_zpg(self));
+ cpu_65c02_smb(self, 0x80, cpu_65c02_ea_zero_page(self));
break;
case 0xf8:
cpu_65c02_se(self, (1 << CPU_65C02_REG_P_BIT_D));
break;
case 0xf9:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.y)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.y)));
break;
case 0xfa:
cpu_65c02_pl(self, CPU_65C02_EA_X);
cpu_65c02_ill34(self);
break;
case 0xfd:
- cpu_65c02_sbc(self, cpu_65c02_rb(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x)));
+ cpu_65c02_sbc(self, cpu_65c02_read_byte(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x)));
break;
case 0xfe:
- cpu_65c02_inc(self, cpu_65c02_ea_abs_idx(self, self->regs.byte.x));
+ cpu_65c02_inc(self, cpu_65c02_ea_absolute_indexed(self, self->regs.byte.x));
break;
case 0xff:
{
- int rvalue = cpu_65c02_rb(self, cpu_65c02_ea_zpg(self));
- cpu_65c02_bbs(self, rvalue & 0x80, cpu_65c02_ea_rel(self));
+ int rvalue = cpu_65c02_read_byte(self, cpu_65c02_ea_zero_page(self));
+ cpu_65c02_bbs(self, rvalue & 0x80, cpu_65c02_ea_relative(self));
}
break;
}
};
// memory (or internal register memory) access
-static ALWAYS_INLINE int cpu_65c02_rb(struct cpu_65c02 *self, int addr) {
+static ALWAYS_INLINE int cpu_65c02_read_byte(struct cpu_65c02 *self, int addr) {
if (addr < 0)
#if __BYTE_ORDER == __BIG_ENDIAN
return self->regs.mem_be[~addr];
return self->read_byte(addr & 0xffff);
}
-static ALWAYS_INLINE int cpu_65c02_rw(struct cpu_65c02 *self, int addr) {
- int data = cpu_65c02_rb(self, addr);
- return data | (cpu_65c02_rb(self, addr + 1) << 8);
+static ALWAYS_INLINE int cpu_65c02_read_word(struct cpu_65c02 *self, int addr) {
+ int data = cpu_65c02_read_byte(self, addr);
+ return data | (cpu_65c02_read_byte(self, addr + 1) << 8);
}
-static ALWAYS_INLINE int cpu_65c02_rw_zpg(struct cpu_65c02 *self, int addr) {
- int data = cpu_65c02_rb(self, addr & 0xff);
- return data | (cpu_65c02_rb(self, (addr + 1) & 0xff) << 8);
+static ALWAYS_INLINE int cpu_65c02_read_word_zero_page(struct cpu_65c02 *self, int addr) {
+ int data = cpu_65c02_read_byte(self, addr & 0xff);
+ return data | (cpu_65c02_read_byte(self, (addr + 1) & 0xff) << 8);
}
-static ALWAYS_INLINE void cpu_65c02_wb(struct cpu_65c02 *self, int addr, int data) {
+static ALWAYS_INLINE void cpu_65c02_write_byte(struct cpu_65c02 *self, int addr, int data) {
self->cycles += 1;
if (addr < 0)
#if __BYTE_ORDER == __BIG_ENDIAN
self->write_byte(addr, data);
}
-static ALWAYS_INLINE void cpu_65c02_ww(struct cpu_65c02 *self, int addr, int data) {
- cpu_65c02_wb(self, addr, data & 0xff);
- cpu_65c02_wb(self, addr + 1, data >> 8);
+static ALWAYS_INLINE void cpu_65c02_write_word(struct cpu_65c02 *self, int addr, int data) {
+ cpu_65c02_write_byte(self, addr, data & 0xff);
+ cpu_65c02_write_byte(self, addr + 1, data >> 8);
}
-static ALWAYS_INLINE int cpu_65c02_fb(struct cpu_65c02 *self) {
- int data = cpu_65c02_rb(self, self->regs.word.pc++);
+static ALWAYS_INLINE int cpu_65c02_fetch_byte(struct cpu_65c02 *self) {
+ int data = cpu_65c02_read_byte(self, self->regs.word.pc++);
return data;
}
-static ALWAYS_INLINE int cpu_65c02_fw(struct cpu_65c02 *self) {
- int data = cpu_65c02_fb(self);
- return data | (cpu_65c02_fb(self) << 8);
+static ALWAYS_INLINE int cpu_65c02_fetch_word(struct cpu_65c02 *self) {
+ int data = cpu_65c02_fetch_byte(self);
+ return data | (cpu_65c02_fetch_byte(self) << 8);
}
-static ALWAYS_INLINE void cpu_65c02_phb(struct cpu_65c02 *self, int data) {
- cpu_65c02_wb(self, self->regs.word.sp, data);
+static ALWAYS_INLINE void cpu_65c02_push_byte(struct cpu_65c02 *self, int data) {
+ cpu_65c02_write_byte(self, self->regs.word.sp, data);
--self->regs.byte.s;
}
-static ALWAYS_INLINE void cpu_65c02_phw(struct cpu_65c02 *self, int data) {
- cpu_65c02_phb(self, data >> 8);
- cpu_65c02_phb(self, data & 0xff);
+static ALWAYS_INLINE void cpu_65c02_push_word(struct cpu_65c02 *self, int data) {
+ cpu_65c02_push_byte(self, data >> 8);
+ cpu_65c02_push_byte(self, data & 0xff);
}
-static ALWAYS_INLINE int cpu_65c02_plb(struct cpu_65c02 *self) {
+static ALWAYS_INLINE int cpu_65c02_pop_byte(struct cpu_65c02 *self) {
++self->regs.byte.s;
- return cpu_65c02_rb(self, self->regs.word.sp);
+ return cpu_65c02_read_byte(self, self->regs.word.sp);
}
-static ALWAYS_INLINE int cpu_65c02_plw(struct cpu_65c02 *self) {
- int data = cpu_65c02_plb(self);
- return data | (cpu_65c02_plb(self) << 8);
+static ALWAYS_INLINE int cpu_65c02_pop_word(struct cpu_65c02 *self) {
+ int data = cpu_65c02_pop_byte(self);
+ return data | (cpu_65c02_pop_byte(self) << 8);
}
// effective address calculation
-static ALWAYS_INLINE int cpu_65c02_ea_abs(struct cpu_65c02 *self) {
- return cpu_65c02_fw(self);
+static ALWAYS_INLINE int cpu_65c02_ea_absolute(struct cpu_65c02 *self) {
+ return cpu_65c02_fetch_word(self);
}
-static ALWAYS_INLINE int cpu_65c02_ea_abs_idx(struct cpu_65c02 *self, int rvalue) {
- int addr = cpu_65c02_ea_abs(self);
+static ALWAYS_INLINE int cpu_65c02_ea_absolute_indexed(struct cpu_65c02 *self, int rvalue) {
+ int addr = cpu_65c02_ea_absolute(self);
self->cycles += ((addr & 0xff) + (rvalue & 0xff)) >> 8;
return addr + rvalue;
}
-static ALWAYS_INLINE int cpu_65c02_ea_abs_idx_ind(struct cpu_65c02 *self, int rvalue) {
- return cpu_65c02_rw(self, cpu_65c02_ea_abs_idx(self, rvalue));
+static ALWAYS_INLINE int cpu_65c02_ea_absolute_indexed_indirect(struct cpu_65c02 *self, int rvalue) {
+ return cpu_65c02_read_word(self, cpu_65c02_ea_absolute_indexed(self, rvalue));
}
-static ALWAYS_INLINE int cpu_65c02_ea_abs_ind(struct cpu_65c02 *self) {
- return cpu_65c02_rw(self, cpu_65c02_ea_abs(self));
+static ALWAYS_INLINE int cpu_65c02_ea_absolute_indirect(struct cpu_65c02 *self) {
+ return cpu_65c02_read_word(self, cpu_65c02_ea_absolute(self));
}
-static ALWAYS_INLINE int cpu_65c02_ea_rel(struct cpu_65c02 *self) {
- int offset = cpu_65c02_fb(self);
+static ALWAYS_INLINE int cpu_65c02_ea_relative(struct cpu_65c02 *self) {
+ int offset = cpu_65c02_fetch_byte(self);
return offset - ((offset << 1) & 0x100);
}
-static ALWAYS_INLINE int cpu_65c02_ea_zpg(struct cpu_65c02 *self) {
- return cpu_65c02_fb(self);
+static ALWAYS_INLINE int cpu_65c02_ea_zero_page(struct cpu_65c02 *self) {
+ return cpu_65c02_fetch_byte(self);
}
-static ALWAYS_INLINE int cpu_65c02_ea_zpg_idx(struct cpu_65c02 *self, int rvalue) {
- return (cpu_65c02_ea_zpg(self) + rvalue) & 0xff;
+static ALWAYS_INLINE int cpu_65c02_ea_zero_page_indexed(struct cpu_65c02 *self, int rvalue) {
+ return (cpu_65c02_ea_zero_page(self) + rvalue) & 0xff;
}
-static ALWAYS_INLINE int cpu_65c02_ea_zpg_idx_ind(struct cpu_65c02 *self, int rvalue) {
- return cpu_65c02_rw_zpg(self, cpu_65c02_ea_zpg_idx(self, rvalue));
+static ALWAYS_INLINE int cpu_65c02_ea_zero_page_indexed_indirect(struct cpu_65c02 *self, int rvalue) {
+ return cpu_65c02_read_word_zero_page(self, cpu_65c02_ea_zero_page_indexed(self, rvalue));
}
-static ALWAYS_INLINE int cpu_65c02_ea_zpg_ind(struct cpu_65c02 *self) {
- return cpu_65c02_rw_zpg(self, cpu_65c02_ea_zpg(self));
+static ALWAYS_INLINE int cpu_65c02_ea_zero_page_indirect(struct cpu_65c02 *self) {
+ return cpu_65c02_read_word_zero_page(self, cpu_65c02_ea_zero_page(self));
}
-static ALWAYS_INLINE int cpu_65c02_ea_zpg_ind_idx(struct cpu_65c02 *self, int rvalue) {
- int addr = cpu_65c02_rw_zpg(self, cpu_65c02_ea_zpg(self));
+static ALWAYS_INLINE int cpu_65c02_ea_zero_page_indirect_indexed(struct cpu_65c02 *self, int rvalue) {
+ int addr = cpu_65c02_read_word_zero_page(self, cpu_65c02_ea_zero_page(self));
self->cycles += ((addr & 0xff) + (rvalue & 0xff)) >> 8;
return addr + rvalue;
}
}
static ALWAYS_INLINE void cpu_65c02_asl(struct cpu_65c02 *self, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue) << 1;
+ int result = cpu_65c02_read_byte(self, lvalue) << 1;
++self->cycles;
- cpu_65c02_wb(self, lvalue, result & 0xff);
+ cpu_65c02_write_byte(self, lvalue, result & 0xff);
self->regs.bit.cf = result >> 8;
self->regs.bit.zf = (result & 0xff) == 0;
self->regs.bit.nf = (result >> 7) & 1;
static ALWAYS_INLINE void cpu_65c02_brk(struct cpu_65c02 *self) {
++self->cycles;
- cpu_65c02_phw(self, (self->regs.word.pc + 1) & 0xffff);
- cpu_65c02_phb(self, self->regs.byte.p);
- self->regs.word.pc = cpu_65c02_rw(self, CPU_65C02_IRQ_VECTOR);
+ cpu_65c02_push_word(self, (self->regs.word.pc + 1) & 0xffff);
+ cpu_65c02_push_byte(self, self->regs.byte.p);
+ self->regs.word.pc = cpu_65c02_read_word(self, CPU_65C02_IRQ_VECTOR);
self->regs.bit._if = true;
self->regs.bit.df = false;
}
}
static ALWAYS_INLINE void cpu_65c02_dec(struct cpu_65c02 *self, int lvalue) {
- int result = (cpu_65c02_rb(self, lvalue) - 1) & 0xff;
+ int result = (cpu_65c02_read_byte(self, lvalue) - 1) & 0xff;
++self->cycles;
- cpu_65c02_wb(self, lvalue, result);
+ cpu_65c02_write_byte(self, lvalue, result);
self->regs.bit.zf = result == 0;
self->regs.bit.nf = (result >> 7) & 1;
}
}
static ALWAYS_INLINE void cpu_65c02_inc(struct cpu_65c02 *self, int lvalue) {
- int result = (cpu_65c02_rb(self, lvalue) + 1) & 0xff;
+ int result = (cpu_65c02_read_byte(self, lvalue) + 1) & 0xff;
++self->cycles;
- cpu_65c02_wb(self, lvalue, result);
+ cpu_65c02_write_byte(self, lvalue, result);
self->regs.bit.zf = result == 0;
self->regs.bit.nf = (result >> 7) & 1;
}
}
static ALWAYS_INLINE void cpu_65c02_jsr(struct cpu_65c02 *self, int lvalue) {
- cpu_65c02_phw(self, (self->regs.word.pc - 1) & 0xffff);
+ cpu_65c02_push_word(self, (self->regs.word.pc - 1) & 0xffff);
self->regs.word.pc = lvalue;
}
static ALWAYS_INLINE void cpu_65c02_ld(struct cpu_65c02 *self, int lvalue, int rvalue) {
- cpu_65c02_wb(self, lvalue, rvalue);
+ cpu_65c02_write_byte(self, lvalue, rvalue);
self->regs.bit.zf = rvalue == 0;
self->regs.bit.nf = (rvalue >> 7) & 1;
}
static ALWAYS_INLINE void cpu_65c02_lsr(struct cpu_65c02 *self, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue);
+ int result = cpu_65c02_read_byte(self, lvalue);
++self->cycles;
- cpu_65c02_wb(self, lvalue, result >> 1);
+ cpu_65c02_write_byte(self, lvalue, result >> 1);
self->regs.bit.cf = result & 1;
self->regs.bit.zf = (result & 0xfe) == 0;
self->regs.bit.nf = false;
}
static ALWAYS_INLINE void cpu_65c02_ph(struct cpu_65c02 *self, int rvalue) {
- cpu_65c02_phb(self, rvalue);
+ cpu_65c02_push_byte(self, rvalue);
}
static ALWAYS_INLINE void cpu_65c02_pl(struct cpu_65c02 *self, int lvalue) {
- int result = cpu_65c02_plb(self);
- cpu_65c02_wb(self, lvalue, result);
+ int result = cpu_65c02_pop_byte(self);
+ cpu_65c02_write_byte(self, lvalue, result);
self->regs.bit.zf = result == 0;
self->regs.bit.nf = (result >> 7) & 1;
}
static ALWAYS_INLINE void cpu_65c02_plp(struct cpu_65c02 *self) {
- self->regs.byte.p = cpu_65c02_plb(self) | 0x30;
+ self->regs.byte.p = cpu_65c02_pop_byte(self) | 0x30;
}
static ALWAYS_INLINE void cpu_65c02_rmb(struct cpu_65c02 *self, int rvalue, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue) & ~rvalue;
+ int result = cpu_65c02_read_byte(self, lvalue) & ~rvalue;
++self->cycles;
- cpu_65c02_wb(self, lvalue, result);
+ cpu_65c02_write_byte(self, lvalue, result);
}
static ALWAYS_INLINE void cpu_65c02_rol(struct cpu_65c02 *self, int lvalue) {
- int result = (cpu_65c02_rb(self, lvalue) << 1) | self->regs.bit.cf;
+ int result = (cpu_65c02_read_byte(self, lvalue) << 1) | self->regs.bit.cf;
++self->cycles;
- cpu_65c02_wb(self, lvalue, result & 0xff);
+ cpu_65c02_write_byte(self, lvalue, result & 0xff);
self->regs.bit.cf = result >> 8;
self->regs.bit.zf = (result & 0xff) == 0;
self->regs.bit.nf = (result >> 7) & 1;
}
static ALWAYS_INLINE void cpu_65c02_ror(struct cpu_65c02 *self, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue) | (self->regs.bit.cf << 8);
+ int result = cpu_65c02_read_byte(self, lvalue) | (self->regs.bit.cf << 8);
++self->cycles;
- cpu_65c02_wb(self, lvalue, result >> 1);
+ cpu_65c02_write_byte(self, lvalue, result >> 1);
self->regs.bit.cf = result & 1;
self->regs.bit.zf = (result & 0x1fe) == 0;
self->regs.bit.nf = (result >> 8) & 1;
}
static ALWAYS_INLINE void cpu_65c02_rti(struct cpu_65c02 *self) {
- self->regs.byte.p = cpu_65c02_plb(self) | 0x30;
- self->regs.word.pc = cpu_65c02_plw(self);
+ self->regs.byte.p = cpu_65c02_pop_byte(self) | 0x30;
+ self->regs.word.pc = cpu_65c02_pop_word(self);
}
static ALWAYS_INLINE void cpu_65c02_rts(struct cpu_65c02 *self) {
- self->regs.word.pc = (cpu_65c02_plw(self) + 1) & 0xffff;
+ self->regs.word.pc = (cpu_65c02_pop_word(self) + 1) & 0xffff;
}
static ALWAYS_INLINE void cpu_65c02_sbc(struct cpu_65c02 *self, int rvalue) {
}
static ALWAYS_INLINE void cpu_65c02_smb(struct cpu_65c02 *self, int rvalue, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue) | rvalue;
+ int result = cpu_65c02_read_byte(self, lvalue) | rvalue;
++self->cycles;
- cpu_65c02_wb(self, lvalue, result);
+ cpu_65c02_write_byte(self, lvalue, result);
}
static ALWAYS_INLINE void cpu_65c02_st(struct cpu_65c02 *self, int rvalue, int lvalue) {
- cpu_65c02_wb(self, lvalue, rvalue);
+ cpu_65c02_write_byte(self, lvalue, rvalue);
}
static ALWAYS_INLINE void cpu_65c02_stp(struct cpu_65c02 *self) {
}
static ALWAYS_INLINE void cpu_65c02_trb(struct cpu_65c02 *self, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue);
+ int result = cpu_65c02_read_byte(self, lvalue);
++self->cycles;
- cpu_65c02_wb(self, lvalue, result & ~self->regs.byte.a);
+ cpu_65c02_write_byte(self, lvalue, result & ~self->regs.byte.a);
result &= self->regs.byte.a;
self->regs.bit.zf = result == 0;
}
static ALWAYS_INLINE void cpu_65c02_tsb(struct cpu_65c02 *self, int lvalue) {
- int result = cpu_65c02_rb(self, lvalue);
+ int result = cpu_65c02_read_byte(self, lvalue);
++self->cycles;
- cpu_65c02_wb(self, lvalue, result | self->regs.byte.a);
+ cpu_65c02_write_byte(self, lvalue, result | self->regs.byte.a);
result &= self->regs.byte.a;
self->regs.bit.zf = result == 0;
}