--- xmil/z80c/z80c_cb.c 2004/08/08 14:00:56 1.3 +++ xmil/z80c/z80c_cb.c 2004/08/18 17:15:35 1.5 @@ -19,7 +19,7 @@ static REG8 CPUCALL _cb_rlc(REG8 v) { R_Z80F = v >> 7; ret = (v << 1) | R_Z80F; - R_Z80F |= ZSPtable[ret]; + R_Z80F |= ZSPtable[(UINT8)ret]; return(ret); } @@ -29,7 +29,7 @@ static REG8 CPUCALL _cb_rrc(REG8 v) { R_Z80F = v & 1; ret = (v >> 1) | (R_Z80F << 7); - R_Z80F |= ZSPtable[ret]; + R_Z80F |= ZSPtable[(UINT8)ret]; return(ret); } @@ -38,7 +38,7 @@ static REG8 CPUCALL _cb_rl(REG8 v) { REG8 ret; ret = (v << 1) | (R_Z80F & 1); - R_Z80F = ZSPtable[ret] | (v >> 7); + R_Z80F = ZSPtable[(UINT8)ret] | (v >> 7); return(ret); } @@ -47,7 +47,7 @@ static REG8 CPUCALL _cb_rr(REG8 v) { REG8 ret; ret = (v >> 1) | (R_Z80F << 7); - R_Z80F = ZSPtable[ret] | (v & 1); + R_Z80F = ZSPtable[(UINT8)ret] | (v & 1); return(ret); } @@ -56,7 +56,7 @@ static REG8 CPUCALL _cb_sla(REG8 v) { REG8 ret; ret = (v << 1); - R_Z80F = ZSPtable[ret] | (v >> 7); + R_Z80F = ZSPtable[(UINT8)ret] | (v >> 7); return(ret); } @@ -64,8 +64,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 = ZSPtable[(UINT8)ret] | (v & 1); return(ret); } @@ -74,7 +74,7 @@ static REG8 CPUCALL _cb_sll(REG8 v) { REG8 ret; ret = (v << 1) | 1; - R_Z80F = ZSPtable[ret] | (v >> 7); + R_Z80F = ZSPtable[(UINT8)ret] | (v >> 7); return(ret); }