--- xmil/z80c/z80c_cb.c 2004/08/08 14:00:56 1.3 +++ xmil/z80c/z80c_cb.c 2008/06/02 20:07:32 1.7 @@ -1,11 +1,10 @@ -//---------------------------------------------------------------------------- -// -// Z80C : Z80 Engine - GENERIC -// -// Copyright by Studio Milmake 1999-2000,2004 -// -//---------------------------------------------------------------------------- - +/* ----------------------------------------------------------------------- + * + * Z80C : Z80 Engine - GENERIC + * + * Copyright by Studio Milmake 1999-2000,2004 + * + *------------------------------------------------------------------------ */ #include "compiler.h" #include "z80core.h" @@ -19,7 +18,7 @@ static REG8 CPUCALL _cb_rlc(REG8 v) { R_Z80F = v >> 7; ret = (v << 1) | R_Z80F; - R_Z80F |= ZSPtable[ret]; + R_Z80F |= z80szp_flag[(UINT8)ret]; return(ret); } @@ -29,7 +28,7 @@ static REG8 CPUCALL _cb_rrc(REG8 v) { R_Z80F = v & 1; ret = (v >> 1) | (R_Z80F << 7); - R_Z80F |= ZSPtable[ret]; + R_Z80F |= z80szp_flag[(UINT8)ret]; return(ret); } @@ -38,7 +37,7 @@ static REG8 CPUCALL _cb_rl(REG8 v) { REG8 ret; ret = (v << 1) | (R_Z80F & 1); - R_Z80F = ZSPtable[ret] | (v >> 7); + R_Z80F = z80szp_flag[(UINT8)ret] | (v >> 7); return(ret); } @@ -47,7 +46,7 @@ static REG8 CPUCALL _cb_rr(REG8 v) { REG8 ret; ret = (v >> 1) | (R_Z80F << 7); - R_Z80F = ZSPtable[ret] | (v & 1); + R_Z80F = z80szp_flag[(UINT8)ret] | (v & 1); return(ret); } @@ -56,7 +55,7 @@ static REG8 CPUCALL _cb_sla(REG8 v) { REG8 ret; ret = (v << 1); - R_Z80F = ZSPtable[ret] | (v >> 7); + R_Z80F = z80szp_flag[(UINT8)ret] | (v >> 7); return(ret); } @@ -64,8 +63,8 @@ static REG8 CPUCALL _cb_sra(REG8 v) { REG8 ret; - ret = (((char)v) / 2); - R_Z80F = ZSPtable[ret] | (v & 1); + ret = (((SINT8)v) >> 1); + R_Z80F = z80szp_flag[(UINT8)ret] | (v & 1); return(ret); } @@ -74,7 +73,7 @@ static REG8 CPUCALL _cb_sll(REG8 v) { REG8 ret; ret = (v << 1) | 1; - R_Z80F = ZSPtable[ret] | (v >> 7); + R_Z80F = z80szp_flag[(UINT8)ret] | (v >> 7); return(ret); } @@ -83,7 +82,7 @@ static REG8 CPUCALL _cb_srl(REG8 v) { REG8 ret; ret = v >> 1; - R_Z80F = ZSPtable[ret] | (v & 1); + R_Z80F = z80szp_flag[ret] | (v & 1); return(ret); } @@ -116,7 +115,7 @@ void z80c_cb(void) { *reg = rolsft_proc[bit](*reg); break; - case 0x40: // bit + case 0x40: /* bit */ R_Z80F &= C_FLAG; if ((*reg) & (1 << bit)) { if (bit != 7) { @@ -131,11 +130,11 @@ void z80c_cb(void) { } break; - case 0x80: // reset + case 0x80: /* reset */ (*reg) &= ~(1 << bit); break; - case 0xc0: // set + case 0xc0: /* set */ (*reg) |= 1 << bit; break; } @@ -148,7 +147,7 @@ void z80c_cb(void) { xhl = rolsft_proc[bit](xhl); break; - case 0x40: // bit + case 0x40: /* bit */ Z80_COUNT(12); R_Z80F &= C_FLAG; if (xhl & (1 << bit)) { @@ -164,12 +163,12 @@ void z80c_cb(void) { } return; - case 0x80: // reset + case 0x80: /* reset */ Z80_COUNT(15); xhl &= ~(1 << bit); break; - case 0xc0: // set + case 0xc0: /* set */ Z80_COUNT(15); xhl |= 1 << bit; break; @@ -196,7 +195,7 @@ void z80c_ixcb(void) { xi = rolsft_proc[bit](xi); break; - case 0x40: // bit + case 0x40: /* bit */ Z80_COUNT(20); R_Z80F &= C_FLAG; if (xi & (1 << bit)) { @@ -212,12 +211,12 @@ void z80c_ixcb(void) { } return; - case 0x80: // reset + case 0x80: /* reset */ Z80_COUNT(23); xi &= ~(1 << bit); break; - case 0xc0: // set + case 0xc0: /* set */ Z80_COUNT(23); xi |= 1 << bit; break; @@ -243,7 +242,7 @@ void z80c_iycb(void) { xi = rolsft_proc[bit](xi); break; - case 0x40: // bit + case 0x40: /* bit */ Z80_COUNT(20); R_Z80F &= C_FLAG; if (xi & (1 << bit)) { @@ -259,12 +258,12 @@ void z80c_iycb(void) { } return; - case 0x80: // reset + case 0x80: /* reset */ Z80_COUNT(23); xi &= ~(1 << bit); break; - case 0xc0: // set + case 0xc0: /* set */ Z80_COUNT(23); xi |= 1 << bit; break;