diff options
| author | Ian C <ianc@noddybox.co.uk> | 2006-08-21 22:34:54 +0000 | 
|---|---|---|
| committer | Ian C <ianc@noddybox.co.uk> | 2006-08-21 22:34:54 +0000 | 
| commit | 0034381aac6413def6960c7e4a1f8b84b5538549 (patch) | |
| tree | e7b4cfca4e1148d03a1c00a252330e2099a277ce | |
| parent | f91ac106f900280537c0cf38ce3ab082eb4f9a33 (diff) | |
Edits
| -rw-r--r-- | z80_decode.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/z80_decode.c b/z80_decode.c index 6bb34f5..c5688c8 100644 --- a/z80_decode.c +++ b/z80_decode.c @@ -210,8 +210,10 @@ static Z80Word ADC16(Z80 *cpu, Z80Word REG, Z80Word VAL)  {      Z80Val w;      w=REG+(Z80Val)VAL+CARRY; -    cpu->AF.b[LO]&=(S_Z80|Z_Z80|V_Z80); +    cpu->AF.b[LO]=0; +    if ((w&0xffff)==0) cpu->AF.b[LO]=Z_Z80;      if (w>0xffff) cpu->AF.b[LO]|=C_Z80; +    if ((VAL^REG^0x8000)&(REG^w)&0x8000) cpu->AF.b[LO]|=P_Z80;      if ((REG^w^VAL)&0x1000) cpu->AF.b[LO]|=H_Z80;      SETHIDDEN(w>>8);      return w; @@ -223,11 +225,12 @@ static Z80Word SBC16(Z80 *cpu, Z80Word REG, Z80Word VAL)      Z80Val w;      w=REG-(Z80Val)VAL-CARRY;      cpu->AF.b[LO]=N_Z80; +    if ((w&0xffff)==0) cpu->AF.b[LO]=Z_Z80;      if (w&0x8000) cpu->AF.b[LO]|=S_Z80;      if ((w&0xffff)==0) cpu->AF.b[LO]|=Z_Z80;      if (w>0xffff) cpu->AF.b[LO]|=C_Z80; -    if ((REG^w^VAL)&0x1000) cpu->AF.b[LO]|=H_Z80;      if ((VAL^REG)&(VAL^w)&0x8000) cpu->AF.b[LO]|=P_Z80; +    if ((REG^w^VAL)&0x1000) cpu->AF.b[LO]|=H_Z80;      SETHIDDEN(w>>8);      return w;  } | 
