Fixed ADC instruction
This commit is contained in:
parent
bbd0aae6be
commit
a4775d475c
|
@ -490,9 +490,9 @@ void ocpu_execute() {
|
|||
ocpu.AH = ocpu.A >> 8;
|
||||
break;
|
||||
case REG_A:
|
||||
word_value = match_register(ocpu_fetch_byte());
|
||||
ocpu.A += word_value;
|
||||
break;
|
||||
word_value = ocpu_fetch_word();
|
||||
ocpu.A += (word_value + ocpu.CF);
|
||||
break;
|
||||
case REG_BL:
|
||||
value = ocpu_fetch_byte();
|
||||
ocpu.B += (((ocpu.B & 0xFF00) | (value & 0xFF)) + ocpu.CF);
|
||||
|
@ -504,9 +504,9 @@ void ocpu_execute() {
|
|||
ocpu.BH = ocpu.B >> 8;
|
||||
break;
|
||||
case REG_B:
|
||||
word_value = match_register(ocpu_fetch_byte());
|
||||
ocpu.B += word_value;
|
||||
break;
|
||||
word_value = ocpu_fetch_word();
|
||||
ocpu.B += (word_value + ocpu.CF);
|
||||
break;
|
||||
case REG_CL:
|
||||
value = ocpu_fetch_byte();
|
||||
ocpu.C += (((ocpu.C & 0xFF00) | (value & 0xFF)) + ocpu.CF);
|
||||
|
@ -518,8 +518,8 @@ void ocpu_execute() {
|
|||
ocpu.CH = ocpu.C >> 8;
|
||||
break;
|
||||
case REG_C:
|
||||
word_value = match_register(ocpu_fetch_byte());
|
||||
ocpu.C += word_value;
|
||||
word_value = ocpu_fetch_word();
|
||||
ocpu.C += (word_value + ocpu.CF);
|
||||
break;
|
||||
case REG_DL:
|
||||
value = ocpu_fetch_byte();
|
||||
|
@ -532,8 +532,8 @@ void ocpu_execute() {
|
|||
ocpu.DH = ocpu.D >> 8;
|
||||
break;
|
||||
case REG_D:
|
||||
word_value = match_register(ocpu_fetch_byte());
|
||||
ocpu.D += word_value;
|
||||
word_value = ocpu_fetch_word();
|
||||
ocpu.D += (word_value + ocpu.CF);
|
||||
break;
|
||||
case REG_EL:
|
||||
value = ocpu_fetch_byte();
|
||||
|
@ -546,8 +546,8 @@ void ocpu_execute() {
|
|||
ocpu.EH = ocpu.E >> 8;
|
||||
break;
|
||||
case REG_E:
|
||||
word_value = match_register(ocpu_fetch_byte());
|
||||
ocpu.E += word_value;
|
||||
word_value = ocpu_fetch_word();
|
||||
ocpu.E += (word_value + ocpu.CF);
|
||||
break;
|
||||
case REG_FL:
|
||||
value = ocpu_fetch_byte();
|
||||
|
@ -560,8 +560,8 @@ void ocpu_execute() {
|
|||
ocpu.FH = ocpu.F >> 8;
|
||||
break;
|
||||
case REG_F:
|
||||
word_value = match_register(ocpu_fetch_byte());
|
||||
ocpu.F += word_value;
|
||||
word_value = ocpu_fetch_word();
|
||||
ocpu.F += (word_value + ocpu.CF);
|
||||
break;
|
||||
default:
|
||||
printf("Wrong register: %02X\n", reg);
|
||||
|
|
Loading…
Reference in New Issue