Mercurial > repos > blastem
comparison z80_to_x86.c @ 274:be2b845d3e94
Implement CPL and NEG (untested)
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 02 May 2013 22:39:39 -0700 |
parents | 719b9fea2fe9 |
children | 1a7d0a964ad2 |
comparison
equal
deleted
inserted
replaced
273:719b9fea2fe9 | 274:be2b845d3e94 |
---|---|
849 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); | 849 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); |
850 } | 850 } |
851 dst = z80_save_reg(dst, inst, opts); | 851 dst = z80_save_reg(dst, inst, opts); |
852 dst = z80_save_ea(dst, inst, opts); | 852 dst = z80_save_ea(dst, inst, opts); |
853 break; | 853 break; |
854 /*case Z80_DAA: | 854 //case Z80_DAA: |
855 case Z80_CPL: | 855 case Z80_CPL: |
856 case Z80_NEG:*/ | 856 dst = zcycles(dst, 4); |
857 dst = not_r(dst, opts->regs[Z80_A], SZ_B); | |
858 //TODO: Implement half-carry flag | |
859 dst = mov_irdisp8(dst, 1, CONTEXT, zf_off(ZF_N), SZ_B); | |
860 break; | |
861 case Z80_NEG: | |
862 dst = zcycles(dst, 8); | |
863 dst = neg_r(dst, opts->regs[Z80_A], SZ_B); | |
864 //TODO: Implement half-carry flag | |
865 dst = setcc_rdisp8(dst, CC_Z, CONTEXT, zf_off(ZF_Z)); | |
866 dst = setcc_rdisp8(dst, CC_S, CONTEXT, zf_off(ZF_S)); | |
867 dst = setcc_rdisp8(dst, CC_C, CONTEXT, zf_off(ZF_C)); | |
868 dst = setcc_rdisp8(dst, CC_O, CONTEXT, zf_off(ZF_PV)); | |
869 dst = mov_irdisp8(dst, 1, CONTEXT, zf_off(ZF_N), SZ_B); | |
870 break; | |
857 case Z80_CCF: | 871 case Z80_CCF: |
858 dst = zcycles(dst, 4); | 872 dst = zcycles(dst, 4); |
859 dst = xor_irdisp8(dst, 1, CONTEXT, zf_off(ZF_C), SZ_B); | 873 dst = xor_irdisp8(dst, 1, CONTEXT, zf_off(ZF_C), SZ_B); |
860 dst = mov_irdisp8(dst, 0, CONTEXT, zf_off(ZF_N), SZ_B); | 874 dst = mov_irdisp8(dst, 0, CONTEXT, zf_off(ZF_N), SZ_B); |
861 //TODO: Implement half-carry flag | 875 //TODO: Implement half-carry flag |