Add ocpu INC instruction
This commit is contained in:
parent
3c5ecd764b
commit
bf4b7feb29
|
@ -497,7 +497,86 @@ void ocpu_execute() {
|
|||
return;
|
||||
}
|
||||
break;
|
||||
case INS_INC:
|
||||
reg = ocpu_fetch_byte();
|
||||
switch(reg) {
|
||||
case REG_AL:
|
||||
ocpu.A++;
|
||||
ocpu.AL = ocpu.A & 0xFF;
|
||||
break;
|
||||
case REG_AH:
|
||||
ocpu.A++;
|
||||
ocpu.AH = ocpu.A >> 8;
|
||||
break;
|
||||
case REG_A:
|
||||
ocpu.A++;
|
||||
break;
|
||||
|
||||
case REG_BL:
|
||||
ocpu.B++;
|
||||
ocpu.BL = ocpu.B & 0xFF;
|
||||
break;
|
||||
case REG_BH:
|
||||
ocpu.B++;
|
||||
ocpu.BH = ocpu.B >> 8;
|
||||
break;
|
||||
case REG_B:
|
||||
ocpu.B++;
|
||||
break;
|
||||
|
||||
case REG_CL:
|
||||
ocpu.C++;
|
||||
ocpu.CL = ocpu.C & 0xFF;
|
||||
break;
|
||||
case REG_CH:
|
||||
ocpu.C++;
|
||||
ocpu.CH = ocpu.C >> 8;
|
||||
break;
|
||||
case REG_C:
|
||||
ocpu.C++;
|
||||
break;
|
||||
|
||||
case REG_DL:
|
||||
ocpu.D++;
|
||||
ocpu.DL = ocpu.D & 0xFF;
|
||||
break;
|
||||
case REG_DH:
|
||||
ocpu.D++;
|
||||
ocpu.DH = ocpu.D >> 8;
|
||||
break;
|
||||
case REG_D:
|
||||
ocpu.D++;
|
||||
break;
|
||||
|
||||
case REG_EL:
|
||||
ocpu.E++;
|
||||
ocpu.EL = ocpu.E & 0xFF;
|
||||
break;
|
||||
case REG_EH:
|
||||
ocpu.E++;
|
||||
ocpu.EH = ocpu.E >> 8;
|
||||
break;
|
||||
case REG_E:
|
||||
ocpu.E++;
|
||||
break;
|
||||
|
||||
case REG_FL:
|
||||
ocpu.F++;
|
||||
ocpu.FL = ocpu.F & 0xFF;
|
||||
break;
|
||||
case REG_FH:
|
||||
ocpu.F++;
|
||||
ocpu.FH = ocpu.F >> 8;
|
||||
break;
|
||||
case REG_F:
|
||||
ocpu.F++;
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("Wrong register: %02X\n", reg);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case 0x00:
|
||||
return;
|
||||
default:
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#define INS_MOV_REG 0xA1
|
||||
#define INS_ADD_IM 0x10
|
||||
#define INS_ADD_REG 0xB0
|
||||
#define INS_INC 0x15
|
||||
|
||||
struct OCPU_MEMORY {
|
||||
byte memory[MAX_MEMORY];
|
||||
|
|
Loading…
Reference in New Issue