mirror of
https://github.com/FrancescoRigoni/Lib65816.git
synced 2024-06-10 04:29:35 +00:00
removed duplicated switch and reverted pc change
This commit is contained in:
parent
6f197ee233
commit
f18794b159
|
@ -135,137 +135,136 @@ void Cpu65816::executeADC(OpCode &opCode) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
switch (opCode.getCode()) {
|
switch (opCode.getCode()) {
|
||||||
switch (opCode.getCode()) {
|
case (0x69): // ADC Immediate
|
||||||
case (0x69): // ADC Immediate
|
{
|
||||||
{
|
if (accumulatorIs16BitWide()) {
|
||||||
if (accumulatorIs16BitWide()) {
|
addToProgramAddress(1);
|
||||||
addToProgramAddress(1);
|
|
||||||
}
|
|
||||||
addToProgramAddress(3);
|
|
||||||
addToCycles(2);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
case (0x6D): // ADC Absolute
|
addToProgramAddress(2);
|
||||||
{
|
addToCycles(2);
|
||||||
addToProgramAddress(3);
|
break;
|
||||||
addToCycles(4);
|
}
|
||||||
break;
|
case (0x6D): // ADC Absolute
|
||||||
|
{
|
||||||
|
addToProgramAddress(3);
|
||||||
|
addToCycles(4);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (0x6F): // ADC Absolute Long
|
||||||
|
{
|
||||||
|
addToProgramAddress(4);
|
||||||
|
addToCycles(5);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (0x65): // ADC Direct Page
|
||||||
|
{
|
||||||
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x6F): // ADC Absolute Long
|
|
||||||
{
|
|
||||||
addToProgramAddress(4);
|
|
||||||
addToCycles(5);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case (0x65): // ADC Direct Page
|
|
||||||
{
|
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
|
||||||
addToCycles(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
addToProgramAddress(2);
|
addToProgramAddress(2);
|
||||||
addToCycles(3);
|
addToCycles(3);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case (0x72): // ADC Direct Page Indirect
|
||||||
|
{
|
||||||
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x72): // ADC Direct Page Indirect
|
|
||||||
{
|
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
|
||||||
addToCycles(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
addToProgramAddress(2);
|
addToProgramAddress(2);
|
||||||
addToCycles(5);
|
addToCycles(5);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case (0x67): // ADC Direct Page Indirect Long
|
||||||
|
{
|
||||||
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x67): // ADC Direct Page Indirect Long
|
|
||||||
{
|
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
|
||||||
addToCycles(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
addToProgramAddress(2);
|
addToProgramAddress(2);
|
||||||
addToCycles(6);
|
addToCycles(6);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case (0x7D): // ADC Absolute Indexed, X
|
||||||
|
{
|
||||||
|
if (opCodeAddressingCrossesPageBoundary(opCode)) {
|
||||||
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x7D): // ADC Absolute Indexed, X
|
|
||||||
{
|
|
||||||
if (opCodeAddressingCrossesPageBoundary(opCode)) {
|
|
||||||
addToCycles(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
addToProgramAddress(3);
|
addToProgramAddress(3);
|
||||||
addToCycles(4);
|
addToCycles(4);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
case (0x7F): // ADC Absolute Long Indexed, X
|
||||||
|
{
|
||||||
|
addToProgramAddress(4);
|
||||||
|
addToCycles(5);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (0x79): // ADC Absolute Indexed Y
|
||||||
|
{
|
||||||
|
if (opCodeAddressingCrossesPageBoundary(opCode)) {
|
||||||
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x7F): // ADC Absolute Long Indexed, X
|
addToProgramAddress(3);
|
||||||
{
|
addToCycles(4);
|
||||||
addToProgramAddress(4);
|
break;
|
||||||
addToCycles(5);
|
}
|
||||||
break;
|
case (0x75): // ADC Direct Page Indexed, X
|
||||||
|
{
|
||||||
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x79): // ADC Absolute Indexed Y
|
addToProgramAddress(2);
|
||||||
{
|
addToCycles(4);
|
||||||
if (opCodeAddressingCrossesPageBoundary(opCode)) {
|
break;
|
||||||
addToCycles(1);
|
}
|
||||||
}
|
case (0x61): // ADC Direct Page Indexed Indirect, X
|
||||||
addToProgramAddress(3);
|
{
|
||||||
addToCycles(4);
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
break;
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x75): // ADC Direct Page Indexed, X
|
addToProgramAddress(2);
|
||||||
{
|
addToCycles(6);
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
break;
|
||||||
addToCycles(1);
|
}
|
||||||
}
|
case (0x71): // ADC Direct Page Indirect Indexed, Y
|
||||||
addToProgramAddress(2);
|
{
|
||||||
addToCycles(4);
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
break;
|
addToCycles(1);
|
||||||
}
|
}
|
||||||
case (0x61): // ADC Direct Page Indexed Indirect, X
|
if (opCodeAddressingCrossesPageBoundary(opCode)) {
|
||||||
{
|
addToCycles(1);
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
|
||||||
addToCycles(1);
|
|
||||||
}
|
|
||||||
addToProgramAddress(2);
|
|
||||||
addToCycles(6);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
case (0x71): // ADC Direct Page Indirect Indexed, Y
|
addToProgramAddress(2);
|
||||||
{
|
addToCycles(5);
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
break;
|
||||||
addToCycles(1);
|
}
|
||||||
}
|
case (0x77): // ADC Direct Page Indirect Long Indexed, Y
|
||||||
if (opCodeAddressingCrossesPageBoundary(opCode)) {
|
{
|
||||||
addToCycles(1);
|
if (Binary::lower8BitsOf(mD) != 0) {
|
||||||
}
|
addToCycles(1);
|
||||||
addToProgramAddress(2);
|
|
||||||
addToCycles(5);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case (0x77): // ADC Direct Page Indirect Long Indexed, Y
|
|
||||||
{
|
|
||||||
if (Binary::lower8BitsOf(mD) != 0) {
|
|
||||||
addToCycles(1);
|
|
||||||
}
|
|
||||||
addToProgramAddress(2);
|
|
||||||
addToCycles(6);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case (0x63): // ADC Stack Relative
|
|
||||||
{
|
|
||||||
addToProgramAddress(2);
|
|
||||||
addToCycles(4);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case (0x73): // ADC Stack Relative Indirect Indexed, Y
|
|
||||||
{
|
|
||||||
addToProgramAddress(2);
|
|
||||||
addToCycles(7);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default: {
|
|
||||||
LOG_UNEXPECTED_OPCODE(opCode);
|
|
||||||
}
|
}
|
||||||
|
addToProgramAddress(2);
|
||||||
|
addToCycles(6);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (0x63): // ADC Stack Relative
|
||||||
|
{
|
||||||
|
addToProgramAddress(2);
|
||||||
|
addToCycles(4);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case (0x73): // ADC Stack Relative Indirect Indexed, Y
|
||||||
|
{
|
||||||
|
addToProgramAddress(2);
|
||||||
|
addToCycles(7);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default: {
|
||||||
|
LOG_UNEXPECTED_OPCODE(opCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user