]> cloudbase.mooo.com Git - avrcpm.git/commitdiff
* avr/z80.asm:
authorLeo <erbl259-lmu@yahoo.de>
Sun, 25 Jul 2010 23:08:53 +0000 (23:08 +0000)
committerLeo <erbl259-lmu@yahoo.de>
Sun, 25 Jul 2010 23:08:53 +0000 (23:08 +0000)
  - Interpreter: Apply most ALU operations (add/adc/sub/sbc/and/or/xor/cpl) direkt to z_a, so the STORE_A phase can be skipped.

git-svn-id: svn://cu.loc/avr-cpm/trunk@52 57430480-672e-4586-8877-bcf8adbbf3b7

avrcpm/avr/z80.asm

index dd32be8b82d791030220bf7cabd910d4a6e59ee8..3d5f0b84ec16455375eaf9f5c2a1e9080f398b07 100644 (file)
@@ -2610,6 +2610,7 @@ do_store_am:
 .equ OP_DI             = (37<<10)
 .equ OP_EI             = (38<<10)
 .equ OP_INV            = (39<<10)
+.equ OP_CPFA   = (40<<10)
 
 opjumps:
        rjmp do_op_nop
@@ -2652,6 +2653,7 @@ opjumps:
        rjmp do_op_di
        rjmp do_op_ei
        rjmp do_op_inv
+       rjmp do_op_cpfa
 
 
 ;How the flags are supposed to work:
@@ -3071,9 +3073,9 @@ do_op_rl:
 ;
 ;
 do_op_adda:
-       add opl,z_a
+       add z_a,opl
        in temp,sreg
-       ldpmx   z_flags,sz53p_tab,opl           ;S,Z,P flag
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,P flag
        bmov    z_flags,ZFL_C, temp,AVR_C
        do_z80_flags_HP
        ret
@@ -3090,9 +3092,9 @@ do_op_adca:
        clc
        sbrc z_flags,ZFL_C
         sec
-       adc opl,z_a
+       adc z_a,opl
        in temp,sreg
-       ldpmx   z_flags,sz53p_tab,opl           ;S,Z,P
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,P
        bmov    z_flags,ZFL_C, temp,AVR_C
        do_z80_flags_HP
        ret
@@ -3101,13 +3103,28 @@ do_op_adca:
 ;|Mnemonic  |SZHPNC|Description          |Notes                 |
 ;----------------------------------------------------------------
 ;|SUB s     |***V1*|Subtract             |A=A-s                 |
-;|CP s      |***V1*|Compare              |A-s                   |
 ;|----------|SZHP C|---------- 8080 ----------------------------|
 ;|SUB s     |***P *|Subtract             |A=A-s                 |
-;|CP s      |***P *|Compare              |A-s                   |
 
 ;
 do_op_subfa:
+       sub z_a,opl
+       in temp,sreg
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,P
+       bmov    z_flags,ZFL_C, temp,AVR_C
+       do_z80_flags_HP
+       do_z80_flags_set_N
+       ret
+
+;----------------------------------------------------------------
+;|Mnemonic  |SZHPNC|Description          |Notes                 |
+;----------------------------------------------------------------
+;|CP s      |***V1*|Compare              |A-s                   |
+;|----------|SZHP C|---------- 8080 ----------------------------|
+;|CP s      |***P *|Compare              |A-s                   |
+
+;
+do_op_cpfa:
        mov temp,z_a
        sub temp,opl
        mov opl,temp
@@ -3127,14 +3144,12 @@ do_op_subfa:
 ;
 ;
 do_op_sbcfa:
-       mov temp,z_a
        clc
        sbrc z_flags,ZFL_C
         sec
-       sbc temp,opl
-       mov opl,temp
+       sbc z_a,opl
        in temp,sreg
-       ldpmx   z_flags,sz53p_tab,opl           ;S,Z,P
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,P
        bmov    z_flags,ZFL_C, temp,AVR_C
        do_z80_flags_HP
        do_z80_flags_set_N
@@ -3149,8 +3164,8 @@ do_op_sbcfa:
 ;
 ; TODO H-Flag
 do_op_anda:
-       and opl,z_a                             ;
-       ldpmx   z_flags,sz53p_tab,opl           ;S,Z,P,N,C
+       and z_a,opl                             ;
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,P,N,C
        do_z80_flags_op_and
        ret
 
@@ -3164,8 +3179,8 @@ do_op_anda:
 ;
 ; TODO: H-Flag
 do_op_ora:
-       or opl,z_a
-       ldpmx   z_flags,sz53p_tab,opl           ;S,Z,H,P,N,C
+       or z_a,opl
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,H,P,N,C
        do_z80_flags_op_or
        ret
 
@@ -3178,8 +3193,8 @@ do_op_ora:
 ;
 ; TODO: H-Flag
 do_op_xora:
-       eor opl,z_a
-       ldpmx   z_flags,sz53p_tab,opl           ;S,Z,H,P,N,C
+       eor z_a,opl
+       ldpmx   z_flags,sz53p_tab,z_a           ;S,Z,H,P,N,C
        do_z80_flags_op_or
        ret
 
@@ -3419,7 +3434,7 @@ do_op_ccf:
 ;
 ;
 do_op_cpl:
-       com opl
+       com z_a
        do_z80_flags_set_HN
        ret
 
@@ -3824,7 +3839,7 @@ inst_table:
 .dw (FETCH_L   | OP_INC        | STORE_L  )     ; 2C           INC L
 .dw (FETCH_L   | OP_DEC        | STORE_L  )     ; 2D           DEC L
 .dw (FETCH_DIR8        | OP_NOP        | STORE_L  )     ; 2E nn        LD L,n
-.dw (FETCH_A    | OP_CPL       | STORE_A  )     ; 2F           CPL
+.dw (FETCH_NOP  | OP_CPL       | STORE_NOP)     ; 2F           CPL
 .dw (FETCH_NOP | OP_INV        | STORE_NOP)     ; 30 oo        JR NC,o         (Z80)
 .dw (FETCH_DIR16| OP_NOP       | STORE_SP )     ; 31 nn nn     LD SP,nn
 .dw (FETCH_DIR16| OP_NOP       | STORE_AM )     ; 32 nn nn     LD (nn),A
@@ -3905,77 +3920,77 @@ inst_table:
 .dw (FETCH_L   | OP_NOP        | STORE_A  )     ; 7D           LD A,r
 .dw (FETCH_MHL | OP_NOP        | STORE_A  )     ; 7E           LD A,r
 .dw (FETCH_A    | OP_NOP       | STORE_A  )     ; 7F           LD A,r
-.dw (FETCH_B   | OP_ADDA       | STORE_A  )     ; 80           ADD A,r
-.dw (FETCH_C   | OP_ADDA       | STORE_A  )     ; 81           ADD A,r
-.dw (FETCH_D   | OP_ADDA       | STORE_A  )     ; 82           ADD A,r
-.dw (FETCH_E   | OP_ADDA       | STORE_A  )     ; 83           ADD A,r
-.dw (FETCH_H   | OP_ADDA       | STORE_A  )     ; 84           ADD A,r
-.dw (FETCH_L   | OP_ADDA       | STORE_A  )     ; 85           ADD A,r
-.dw (FETCH_MHL | OP_ADDA       | STORE_A  )     ; 86           ADD A,r
-.dw (FETCH_A    | OP_ADDA      | STORE_A  )     ; 87           ADD A,r
-.dw (FETCH_B   | OP_ADCA       | STORE_A  )     ; 88           ADC A,r
-.dw (FETCH_C   | OP_ADCA       | STORE_A  )     ; 89           ADC A,r
-.dw (FETCH_D   | OP_ADCA       | STORE_A  )     ; 8A           ADC A,r
-.dw (FETCH_E   | OP_ADCA       | STORE_A  )     ; 8B           ADC A,r
-.dw (FETCH_H   | OP_ADCA       | STORE_A  )     ; 8C           ADC A,r
-.dw (FETCH_L   | OP_ADCA       | STORE_A  )     ; 8D           ADC A,r
-.dw (FETCH_MHL | OP_ADCA       | STORE_A  )     ; 8E           ADC A,r
-.dw (FETCH_A    | OP_ADCA      | STORE_A  )     ; 8F           ADC A,r
-.dw (FETCH_B   | OP_SUBFA      | STORE_A  )     ; 90           SUB A,r
-.dw (FETCH_C   | OP_SUBFA      | STORE_A  )     ; 91           SUB A,r
-.dw (FETCH_D   | OP_SUBFA      | STORE_A  )     ; 92           SUB A,r
-.dw (FETCH_E   | OP_SUBFA      | STORE_A  )     ; 93           SUB A,r
-.dw (FETCH_H   | OP_SUBFA      | STORE_A  )     ; 94           SUB A,r
-.dw (FETCH_L   | OP_SUBFA      | STORE_A  )     ; 95           SUB A,r
-.dw (FETCH_MHL | OP_SUBFA      | STORE_A  )     ; 96           SUB A,r
-.dw (FETCH_A    | OP_SUBFA     | STORE_A  )     ; 97           SUB A,r
-.dw (FETCH_B   | OP_SBCFA      | STORE_A  )     ; 98           SBC A,r
-.dw (FETCH_C   | OP_SBCFA      | STORE_A  )     ; 99           SBC A,r
-.dw (FETCH_D   | OP_SBCFA      | STORE_A  )     ; 9A           SBC A,r
-.dw (FETCH_E   | OP_SBCFA      | STORE_A  )     ; 9B           SBC A,r
-.dw (FETCH_H   | OP_SBCFA      | STORE_A  )     ; 9C           SBC A,r
-.dw (FETCH_L   | OP_SBCFA      | STORE_A  )     ; 9D           SBC A,r
-.dw (FETCH_MHL | OP_SBCFA      | STORE_A  )     ; 9E           SBC A,r
-.dw (FETCH_A    | OP_SBCFA     | STORE_A  )     ; 9F           SBC A,r
-.dw (FETCH_B   | OP_ANDA       | STORE_A  )     ; A0           AND A,r
-.dw (FETCH_C   | OP_ANDA       | STORE_A  )     ; A1           AND A,r
-.dw (FETCH_D   | OP_ANDA       | STORE_A  )     ; A2           AND A,r
-.dw (FETCH_E   | OP_ANDA       | STORE_A  )     ; A3           AND A,r
-.dw (FETCH_H   | OP_ANDA       | STORE_A  )     ; A4           AND A,r
-.dw (FETCH_L   | OP_ANDA       | STORE_A  )     ; A5           AND A,r
-.dw (FETCH_MHL | OP_ANDA       | STORE_A  )     ; A6           AND A,r
-.dw (FETCH_A    | OP_ANDA      | STORE_A  )     ; A7           AND A,r
-.dw (FETCH_B   | OP_XORA       | STORE_A  )     ; A8           XOR A,r
-.dw (FETCH_C   | OP_XORA       | STORE_A  )     ; A9           XOR A,r
-.dw (FETCH_D   | OP_XORA       | STORE_A  )     ; AA           XOR A,r
-.dw (FETCH_E   | OP_XORA       | STORE_A  )     ; AB           XOR A,r
-.dw (FETCH_H   | OP_XORA       | STORE_A  )     ; AC           XOR A,r
-.dw (FETCH_L   | OP_XORA       | STORE_A  )     ; AD           XOR A,r
-.dw (FETCH_MHL | OP_XORA       | STORE_A  )     ; AE           XOR A,r
-.dw (FETCH_A    | OP_XORA      | STORE_A  )     ; AF           XOR A,r
-.dw (FETCH_B   | OP_ORA        | STORE_A  )     ; B0           OR A,r
-.dw (FETCH_C   | OP_ORA        | STORE_A  )     ; B1           OR A,r
-.dw (FETCH_D   | OP_ORA        | STORE_A  )     ; B2           OR A,r
-.dw (FETCH_E   | OP_ORA        | STORE_A  )     ; B3           OR A,r
-.dw (FETCH_H   | OP_ORA        | STORE_A  )     ; B4           OR A,r
-.dw (FETCH_L   | OP_ORA        | STORE_A  )     ; B5           OR A,r
-.dw (FETCH_MHL | OP_ORA        | STORE_A  )     ; B6           OR A,r
-.dw (FETCH_A    | OP_ORA       | STORE_A  )     ; B7           OR A,r
-.dw (FETCH_B   | OP_SUBFA      | STORE_NOP)     ; B8           CP A,r
-.dw (FETCH_C   | OP_SUBFA      | STORE_NOP)     ; B9           CP A,r
-.dw (FETCH_D   | OP_SUBFA      | STORE_NOP)     ; BA           CP A,r
-.dw (FETCH_E   | OP_SUBFA      | STORE_NOP)     ; BB           CP A,r
-.dw (FETCH_H   | OP_SUBFA      | STORE_NOP)     ; BC           CP A,r
-.dw (FETCH_L   | OP_SUBFA      | STORE_NOP)     ; BD           CP A,r
-.dw (FETCH_MHL | OP_SUBFA      | STORE_NOP)     ; BE           CP A,r
-.dw (FETCH_A    | OP_SUBFA     | STORE_NOP)     ; BF           CP A,r
+.dw (FETCH_B   | OP_ADDA       | STORE_NOP)     ; 80           ADD A,r
+.dw (FETCH_C   | OP_ADDA       | STORE_NOP)     ; 81           ADD A,r
+.dw (FETCH_D   | OP_ADDA       | STORE_NOP)     ; 82           ADD A,r
+.dw (FETCH_E   | OP_ADDA       | STORE_NOP)     ; 83           ADD A,r
+.dw (FETCH_H   | OP_ADDA       | STORE_NOP)     ; 84           ADD A,r
+.dw (FETCH_L   | OP_ADDA       | STORE_NOP)     ; 85           ADD A,r
+.dw (FETCH_MHL | OP_ADDA       | STORE_NOP)     ; 86           ADD A,r
+.dw (FETCH_A    | OP_ADDA      | STORE_NOP)     ; 87           ADD A,r
+.dw (FETCH_B   | OP_ADCA       | STORE_NOP)     ; 88           ADC A,r
+.dw (FETCH_C   | OP_ADCA       | STORE_NOP)     ; 89           ADC A,r
+.dw (FETCH_D   | OP_ADCA       | STORE_NOP)     ; 8A           ADC A,r
+.dw (FETCH_E   | OP_ADCA       | STORE_NOP)     ; 8B           ADC A,r
+.dw (FETCH_H   | OP_ADCA       | STORE_NOP)     ; 8C           ADC A,r
+.dw (FETCH_L   | OP_ADCA       | STORE_NOP)     ; 8D           ADC A,r
+.dw (FETCH_MHL | OP_ADCA       | STORE_NOP)     ; 8E           ADC A,r
+.dw (FETCH_A    | OP_ADCA      | STORE_NOP)     ; 8F           ADC A,r
+.dw (FETCH_B   | OP_SUBFA      | STORE_NOP)     ; 90           SUB A,r
+.dw (FETCH_C   | OP_SUBFA      | STORE_NOP)     ; 91           SUB A,r
+.dw (FETCH_D   | OP_SUBFA      | STORE_NOP)     ; 92           SUB A,r
+.dw (FETCH_E   | OP_SUBFA      | STORE_NOP)     ; 93           SUB A,r
+.dw (FETCH_H   | OP_SUBFA      | STORE_NOP)     ; 94           SUB A,r
+.dw (FETCH_L   | OP_SUBFA      | STORE_NOP)     ; 95           SUB A,r
+.dw (FETCH_MHL | OP_SUBFA      | STORE_NOP)     ; 96           SUB A,r
+.dw (FETCH_A    | OP_SUBFA     | STORE_NOP)     ; 97           SUB A,r
+.dw (FETCH_B   | OP_SBCFA      | STORE_NOP)     ; 98           SBC A,r
+.dw (FETCH_C   | OP_SBCFA      | STORE_NOP)     ; 99           SBC A,r
+.dw (FETCH_D   | OP_SBCFA      | STORE_NOP)     ; 9A           SBC A,r
+.dw (FETCH_E   | OP_SBCFA      | STORE_NOP)     ; 9B           SBC A,r
+.dw (FETCH_H   | OP_SBCFA      | STORE_NOP)     ; 9C           SBC A,r
+.dw (FETCH_L   | OP_SBCFA      | STORE_NOP)     ; 9D           SBC A,r
+.dw (FETCH_MHL | OP_SBCFA      | STORE_NOP)     ; 9E           SBC A,r
+.dw (FETCH_A    | OP_SBCFA     | STORE_NOP)     ; 9F           SBC A,r
+.dw (FETCH_B   | OP_ANDA       | STORE_NOP)     ; A0           AND A,r
+.dw (FETCH_C   | OP_ANDA       | STORE_NOP)     ; A1           AND A,r
+.dw (FETCH_D   | OP_ANDA       | STORE_NOP)     ; A2           AND A,r
+.dw (FETCH_E   | OP_ANDA       | STORE_NOP)     ; A3           AND A,r
+.dw (FETCH_H   | OP_ANDA       | STORE_NOP)     ; A4           AND A,r
+.dw (FETCH_L   | OP_ANDA       | STORE_NOP)     ; A5           AND A,r
+.dw (FETCH_MHL | OP_ANDA       | STORE_NOP)     ; A6           AND A,r
+.dw (FETCH_A    | OP_ANDA      | STORE_NOP)     ; A7           AND A,r
+.dw (FETCH_B   | OP_XORA       | STORE_NOP)     ; A8           XOR A,r
+.dw (FETCH_C   | OP_XORA       | STORE_NOP)     ; A9           XOR A,r
+.dw (FETCH_D   | OP_XORA       | STORE_NOP)     ; AA           XOR A,r
+.dw (FETCH_E   | OP_XORA       | STORE_NOP)     ; AB           XOR A,r
+.dw (FETCH_H   | OP_XORA       | STORE_NOP)     ; AC           XOR A,r
+.dw (FETCH_L   | OP_XORA       | STORE_NOP)     ; AD           XOR A,r
+.dw (FETCH_MHL | OP_XORA       | STORE_NOP)     ; AE           XOR A,r
+.dw (FETCH_A    | OP_XORA      | STORE_NOP)     ; AF           XOR A,r
+.dw (FETCH_B   | OP_ORA        | STORE_NOP)     ; B0           OR A,r
+.dw (FETCH_C   | OP_ORA        | STORE_NOP)     ; B1           OR A,r
+.dw (FETCH_D   | OP_ORA        | STORE_NOP)     ; B2           OR A,r
+.dw (FETCH_E   | OP_ORA        | STORE_NOP)     ; B3           OR A,r
+.dw (FETCH_H   | OP_ORA        | STORE_NOP)     ; B4           OR A,r
+.dw (FETCH_L   | OP_ORA        | STORE_NOP)     ; B5           OR A,r
+.dw (FETCH_MHL | OP_ORA        | STORE_NOP)     ; B6           OR A,r
+.dw (FETCH_A    | OP_ORA       | STORE_NOP)     ; B7           OR A,r
+.dw (FETCH_B   | OP_CPFA       | STORE_NOP)     ; B8           CP A,r
+.dw (FETCH_C   | OP_CPFA       | STORE_NOP)     ; B9           CP A,r
+.dw (FETCH_D   | OP_CPFA       | STORE_NOP)     ; BA           CP A,r
+.dw (FETCH_E   | OP_CPFA       | STORE_NOP)     ; BB           CP A,r
+.dw (FETCH_H   | OP_CPFA       | STORE_NOP)     ; BC           CP A,r
+.dw (FETCH_L   | OP_CPFA       | STORE_NOP)     ; BD           CP A,r
+.dw (FETCH_MHL | OP_CPFA       | STORE_NOP)     ; BE           CP A,r
+.dw (FETCH_A    | OP_CPFA      | STORE_NOP)     ; BF           CP A,r
 .dw (FETCH_NOP  | OP_IFNZ      | STORE_RET)     ; C0           RET NZ
 .dw (FETCH_NOP  | OP_POP16     | STORE_BC )     ; C1           POP BC
 .dw (FETCH_DIR16| OP_IFNZ      | STORE_PC )     ; C2 nn nn     JP NZ,nn
 .dw (FETCH_DIR16| OP_NOP       | STORE_PC )     ; C3 nn nn     JP nn
 .dw (FETCH_DIR16| OP_IFNZ      | STORE_CALL)    ; C4 nn nn     CALL NZ,nn
 .dw (FETCH_BC  | OP_PUSH16     | STORE_NOP)     ; C5           PUSH BC
-.dw (FETCH_DIR8        | OP_ADDA       | STORE_A  )     ; C6 nn        ADD A,n
+.dw (FETCH_DIR8        | OP_ADDA       | STORE_NOP)     ; C6 nn        ADD A,n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; C7           RST 0
 .dw (FETCH_NOP | OP_IFZ        | STORE_RET)     ; C8           RET Z
 .dw (FETCH_NOP | OP_NOP        | STORE_RET)     ; C9           RET
@@ -3983,7 +3998,7 @@ inst_table:
 .dw (FETCH_NOP | OP_INV        | STORE_NOP)     ; CB           (Z80 specific)
 .dw (FETCH_DIR16| OP_IFZ       | STORE_CALL)    ; CC nn nn     CALL Z,nn
 .dw (FETCH_DIR16| OP_NOP       | STORE_CALL)    ; CD nn nn     CALL nn
-.dw (FETCH_DIR8        | OP_ADCA       | STORE_A  )     ; CE nn        ADC A,n
+.dw (FETCH_DIR8        | OP_ADCA       | STORE_NOP)     ; CE nn        ADC A,n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; CF           RST 8H
 .dw (FETCH_NOP | OP_IFNC       | STORE_RET)     ; D0           RET NC
 .dw (FETCH_NOP  | OP_POP16     | STORE_DE )     ; D1           POP DE
@@ -3991,7 +4006,7 @@ inst_table:
 .dw (FETCH_DIR8        | OP_OUTA       | STORE_NOP)     ; D3 nn        OUT (n),A
 .dw (FETCH_DIR16| OP_IFNC      | STORE_CALL)    ; D4 nn nn     CALL NC,nn
 .dw (FETCH_DE  | OP_PUSH16     | STORE_NOP)     ; D5           PUSH DE
-.dw (FETCH_DIR8        | OP_SUBFA      | STORE_A  )     ; D6 nn        SUB n
+.dw (FETCH_DIR8        | OP_SUBFA      | STORE_NOP)     ; D6 nn        SUB n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; D7           RST 10H
 .dw (FETCH_NOP | OP_IFC        | STORE_RET)     ; D8           RET C
 .dw (FETCH_NOP | OP_INV        | STORE_NOP)     ; D9           EXX             (Z80)
@@ -3999,7 +4014,7 @@ inst_table:
 .dw (FETCH_DIR8        | OP_IN         | STORE_A  )     ; DB nn        IN A,(n)
 .dw (FETCH_DIR16| OP_IFC       | STORE_CALL)    ; DC nn nn     CALL C,nn
 .dw (FETCH_NOP | OP_INV        | STORE_NOP)     ; DD           (Z80)
-.dw (FETCH_DIR8        | OP_SBCFA      | STORE_A  )     ; DE nn        SBC A,n
+.dw (FETCH_DIR8        | OP_SBCFA      | STORE_NOP)     ; DE nn        SBC A,n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; DF           RST 18H
 .dw (FETCH_NOP | OP_IFPO       | STORE_RET)     ; E0           RET PO
 .dw (FETCH_NOP | OP_POP16      | STORE_HL )     ; E1           POP HL
@@ -4007,7 +4022,7 @@ inst_table:
 .dw (FETCH_MSP | OP_EXHL       | STORE_MSP)     ; E3           EX (SP),HL
 .dw (FETCH_DIR16| OP_IFPO      | STORE_CALL)    ; E4 nn nn     CALL PO,nn
 .dw (FETCH_HL  | OP_PUSH16     | STORE_NOP)     ; E5           PUSH HL
-.dw (FETCH_DIR8        | OP_ANDA       | STORE_A  )     ; E6 nn        AND n
+.dw (FETCH_DIR8        | OP_ANDA       | STORE_NOP)     ; E6 nn        AND n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; E7           RST 20H
 .dw (FETCH_NOP | OP_IFPE       | STORE_RET)     ; E8           RET PE
 .dw (FETCH_HL  | OP_NOP        | STORE_PC )     ; E9           JP (HL)
@@ -4015,7 +4030,7 @@ inst_table:
 .dw (FETCH_DE  | OP_EXHL       | STORE_DE )     ; EB           EX DE,HL
 .dw (FETCH_DIR16| OP_IFPE      | STORE_CALL)    ; EC nn nn     CALL PE,nn
 .dw (FETCH_NOP | OP_INV        | STORE_NOP)     ; ED           (Z80 specific)
-.dw (FETCH_DIR8        | OP_XORA       | STORE_A  )     ; EE nn        XOR n
+.dw (FETCH_DIR8        | OP_XORA       | STORE_NOP)     ; EE nn        XOR n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; EF           RST 28H
 .dw (FETCH_NOP | OP_IFP        | STORE_RET)     ; F0           RET P
 .dw (FETCH_NOP | OP_POP16      | STORE_AF )     ; F1           POP AF
@@ -4023,7 +4038,7 @@ inst_table:
 .dw (FETCH_NOP | OP_DI         | STORE_NOP)     ; F3           DI
 .dw (FETCH_DIR16| OP_IFP       | STORE_CALL)    ; F4 nn nn     CALL P,nn
 .dw (FETCH_AF  | OP_PUSH16     | STORE_NOP)     ; F5           PUSH AF
-.dw (FETCH_DIR8        | OP_ORA        | STORE_A  )     ; F6 nn        OR n
+.dw (FETCH_DIR8        | OP_ORA        | STORE_NOP)     ; F6 nn        OR n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; F7           RST 30H
 .dw (FETCH_NOP | OP_IFM        | STORE_RET)     ; F8           RET M
 .dw (FETCH_HL  | OP_NOP        | STORE_SP )     ; F9           LD SP,HL
@@ -4031,7 +4046,7 @@ inst_table:
 .dw (FETCH_NOP | OP_EI         | STORE_NOP)     ; FB           EI
 .dw (FETCH_DIR16| OP_IFM       | STORE_CALL)    ; FC nn nn     CALL M,nn
 .dw (FETCH_NOP | OP_INV        | STORE_NOP)     ; FD           (Z80 specific)
-.dw (FETCH_DIR8        | OP_SUBFA      | STORE_NOP)     ; FE nn        CP n
+.dw (FETCH_DIR8        | OP_CPFA       | STORE_NOP)     ; FE nn        CP n
 .dw (FETCH_RST | OP_NOP        | STORE_CALL)    ; FF           RST 38H
 
 ; vim:set ts=8 noet nowrap