trunk/src/emu/cpu/mc68hc11/hc11ops.c
| r17779 | r17780 | |
| 645 | 645 | CYCLES(cpustate, 2); |
| 646 | 646 | } |
| 647 | 647 | |
| 648 | /* ASL EXT 0x78 */ |
| 649 | static void HC11OP(asl_ext)(hc11_state *cpustate) |
| 650 | { |
| 651 | UINT16 adr = FETCH16(cpustate); |
| 652 | UINT8 i = READ8(cpustate, adr); |
| 653 | UINT16 r = i << 1; |
| 654 | CLEAR_NZVC(cpustate); |
| 655 | SET_C8(r); |
| 656 | WRITE8(cpustate, adr, r); |
| 657 | SET_N8(r); |
| 658 | SET_Z8(r); |
| 659 | |
| 660 | if (((cpustate->ccr & CC_N) && (cpustate->ccr & CC_C) == 0) || |
| 661 | ((cpustate->ccr & CC_N) == 0 && (cpustate->ccr & CC_C))) |
| 662 | { |
| 663 | cpustate->ccr |= CC_V; |
| 664 | } |
| 665 | |
| 666 | CYCLES(cpustate, 6); |
| 667 | } |
| 668 | |
| 648 | 669 | /* BITA IMM 0x85 */ |
| 649 | 670 | static void HC11OP(bita_imm)(hc11_state *cpustate) |
| 650 | 671 | { |
| r17779 | r17780 | |
| 775 | 796 | CYCLES(cpustate, 3); |
| 776 | 797 | } |
| 777 | 798 | |
| 799 | /* BCLR DIR 0x15 */ |
| 800 | static void HC11OP(bclr_dir)(hc11_state *cpustate) |
| 801 | { |
| 802 | UINT8 d = FETCH(cpustate); |
| 803 | UINT8 mask = FETCH(cpustate); |
| 804 | UINT8 r = READ8(cpustate, d) & ~mask; |
| 805 | WRITE8(cpustate, d, r); |
| 806 | CLEAR_NZV(cpustate); |
| 807 | SET_N8(r); |
| 808 | SET_Z8(r); |
| 809 | CYCLES(cpustate, 6); |
| 810 | } |
| 811 | |
| 778 | 812 | /* BCLR INDX 0x1d */ |
| 779 | 813 | static void HC11OP(bclr_indx)(hc11_state *cpustate) |
| 780 | 814 | { |
| r17779 | r17780 | |
| 967 | 1001 | CYCLES(cpustate, 3); |
| 968 | 1002 | } |
| 969 | 1003 | |
| 1004 | /* BSET DIR 0x14 */ |
| 1005 | static void HC11OP(bset_dir)(hc11_state *cpustate) |
| 1006 | { |
| 1007 | UINT8 d = FETCH(cpustate); |
| 1008 | UINT8 mask = FETCH(cpustate); |
| 1009 | UINT8 r = READ8(cpustate, d) | mask; |
| 1010 | WRITE8(cpustate, d, r); |
| 1011 | CLEAR_NZV(cpustate); |
| 1012 | SET_N8(r); |
| 1013 | SET_Z8(r); |
| 1014 | CYCLES(cpustate, 6); |
| 1015 | } |
| 1016 | |
| 970 | 1017 | /* BSET INDX 0x1c */ |
| 971 | 1018 | static void HC11OP(bset_indx)(hc11_state *cpustate) |
| 972 | 1019 | { |
trunk/src/emu/cpu/mc68hc11/hc11ops.h
| r17779 | r17780 | |
| 49 | 49 | { 0x18, 0xe4, HC11OP(andb_indy) }, |
| 50 | 50 | { 0, 0x48, HC11OP(asla) }, |
| 51 | 51 | { 0, 0x58, HC11OP(aslb) }, |
| 52 | | // { 0, 0x78, HC11OP(asl_ext) }, |
| 52 | { 0, 0x78, HC11OP(asl_ext) }, |
| 53 | 53 | // { 0, 0x68, HC11OP(asl_indx) }, |
| 54 | 54 | // { 0x18, 0x68, HC11OP(asl_indy) }, |
| 55 | 55 | // { 0, 0x47, HC11OP(asra) }, |
| r17779 | r17780 | |
| 58 | 58 | // { 0, 0x67, HC11OP(asr_indx) }, |
| 59 | 59 | // { 0x18, 0x67, HC11OP(asr_indy) }, |
| 60 | 60 | { 0, 0x24, HC11OP(bcc) }, |
| 61 | | // { 0, 0x15, HC11OP(bclr_dir) }, |
| 61 | { 0, 0x15, HC11OP(bclr_dir) }, |
| 62 | 62 | { 0, 0x1d, HC11OP(bclr_indx) }, |
| 63 | 63 | // { 0x18, 0x1d, HC11OP(bclr_indy) }, |
| 64 | 64 | { 0, 0x25, HC11OP(bcs) }, |
| r17779 | r17780 | |
| 90 | 90 | { 0, 0x12, HC11OP(brset_dir) }, |
| 91 | 91 | { 0, 0x1e, HC11OP(brset_indx) }, |
| 92 | 92 | // { 0x18, 0x1e, HC11OP(brset_indy) }, |
| 93 | | // { 0, 0x14, HC11OP(bset_dir) }, |
| 93 | { 0, 0x14, HC11OP(bset_dir) }, |
| 94 | 94 | { 0, 0x1c, HC11OP(bset_indx) }, |
| 95 | 95 | // { 0x18, 0x1c, HC11OP(bset_indy) }, |
| 96 | 96 | { 0, 0x8d, HC11OP(bsr) }, |