            SECTION         text,CODE


            include         'regs.i'
            include         'vga.i'
            include         'tools.i'


            XREF            TabCB
            XREF            TabED
            XREF            TabIX
            XREF            TabIY
            XREF            ReadPort
            XREF            WritePort
            XREF            Z80
            XREF            TabDAA
            XREF            _IntZ80


;
;           LD              r1,r2
;
LD          MACRO
            MOVE.B          \2,\1
            ENDM


F0_BC:      ;   LD  B,C
            LD              REG_B(A4),REG_C(A4)
            JMP             (A6)             


F0_BD:      ;   LD  B,D
            LD              REG_B(A4),REG_D(A4)
            JMP             (A6)             


F0_BE:      ;   LD  B,E
            LD              REG_B(A4),REG_E(A4)
            JMP             (A6)             


F0_BH:      ;   LD  B,H
            LD              REG_B(A4),REG_H(A4)
            JMP             (A6)             


F0_BL:      ;   LD  B,L
            LD              REG_B(A4),REG_L(A4)
            JMP             (A6)             


F0_BA:      ;   LD  B,A
            LD              REG_B(A4),(A4)
            JMP             (A6)             


F0_CB:      ;   LD  C,B
            LD              REG_C(A4),REG_B(A4)
            JMP             (A6)             


F0_CD:      ;   LD  C,D
            LD              REG_C(A4),REG_D(A4)
            JMP             (A6)             


F0_CE:      ;   LD  C,E
            LD              REG_C(A4),REG_E(A4)
            JMP             (A6)             


F0_CH:      ;   LD  C,H
            LD              REG_C(A4),REG_H(A4)
            JMP             (A6)             


F0_CL:      ;   LD  C,L
            LD              REG_C(A4),REG_L(A4)
            JMP             (A6)             


F0_CA:      ;   LD  C,A
            LD              REG_C(A4),(A4)
            JMP             (A6)             


F0_DB:      ;   LD  D,B
            LD              REG_D(A4),REG_B(A4)
            JMP             (A6)             


F0_DC:      ;   LD  D,C
            LD              REG_D(A4),REG_C(A4)
            JMP             (A6)             


F0_DE:      ;   LD  D,E
            LD              REG_D(A4),REG_E(A4)
            JMP             (A6)             


F0_DH:      ;   LD  D,H
            LD              REG_D(A4),REG_H(A4)
            JMP             (A6)             


F0_DL:      ;   LD  D,L
            LD              REG_D(A4),REG_L(A4)
            JMP             (A6)             


F0_DA:      ;   LD  D,A
            LD              REG_D(A4),(A4)
            JMP             (A6)             


F0_EB:      ;   LD  E,B
            LD              REG_E(A4),REG_B(A4)
            JMP             (A6)             


F0_EC:      ;   LD  E,C
            LD              REG_E(A4),REG_C(A4)
            JMP             (A6)             


F0_ED:      ;   LD  E,D
            LD              REG_E(A4),REG_D(A4)
            JMP             (A6)             


F0_EH:      ;   LD  E,H
            LD              REG_E(A4),REG_H(A4)
            JMP             (A6)             


F0_EL:      ;   LD  E,L
            LD              REG_E(A4),REG_L(A4)
            JMP             (A6)             


F0_EA:      ;   LD  E,A
            LD              REG_E(A4),(A4)
            JMP             (A6)             


F0_HB:      ;   LD  H,B
            LD              REG_H(A4),REG_B(A4)
            JMP             (A6)             


F0_HC:      ;   LD  H,C
            LD              REG_H(A4),REG_C(A4)
            JMP             (A6)             


F0_HD:      ;   LD  H,D
            LD              REG_H(A4),REG_D(A4)
            JMP             (A6)             


F0_HE:      ;   LD  H,E
            LD              REG_H(A4),REG_E(A4)
            JMP             (A6)             


F0_HL:      ;   LD  H,L
            LD              REG_H(A4),REG_L(A4)
            JMP             (A6)             


F0_HA:      ;   LD  H,A
            LD              REG_H(A4),(A4)
            JMP             (A6)             


F0_LB:      ;   LD  L,B
            LD              REG_L(A4),REG_B(A4)
            JMP             (A6)             


F0_LC:      ;   LD  L,C
            LD              REG_L(A4),REG_C(A4)
            JMP             (A6)             


F0_LD:      ;   LD  L,D
            LD              REG_L(A4),REG_D(A4)
            JMP             (A6)             


F0_LE:      ;   LD  L,E
            LD              REG_L(A4),REG_E(A4)
            JMP             (A6)             


F0_LH:      ;   LD  L,H
            LD              REG_L(A4),REG_H(A4)
            JMP             (A6)             


F0_LA:      ;   LD  L,A
            LD              REG_L(A4),(A4)
            JMP             (A6)             


F0_AB:      ;   LD  A,B
            LD              (A4),REG_B(A4)
            JMP             (A6)             


F0_AC:      ;   LD  A,C
            LD              (A4),REG_C(A4)
            JMP             (A6)             


F0_AD:      ;   LD  A,D
            LD              (A4),REG_D(A4)
            JMP             (A6)             


F0_AE:      ;   LD  A,E
            LD              (A4),REG_E(A4)
            JMP             (A6)             


F0_AH:      ;   LD  A,H
            LD              (A4),REG_H(A4)
            JMP             (A6)             


F0_AL:      ;   LD  A,L
            LD              (A4),REG_L(A4)
            JMP             (A6)             



F1_B:       ;   LD  B,nn
            GETN            REG_B(A4)
            JMP             (A6)


F1_C:       ;   LD  C,nn
            GETN            REG_C(A4)
            JMP             (A6)


F1_D:       ;   LD  D,nn
            GETN            REG_D(A4)
            JMP             (A6)


F1_E:       ;   LD  E,nn
            GETN            REG_E(A4)
            JMP             (A6)


F1_H:       ;   LD  H,nn
            GETN            REG_H(A4)
            JMP             (A6)


F1_L:       ;   LD  L,nn
            GETN            REG_L(A4)
            JMP             (A6)


F1_A:       ;   LD  A,nn
            GETN            (A4)
            JMP             (A6)


F2_B:       ;   LD  B,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           REG_B(A4)
            JMP             (A6)


F2_C:       ;   LD  C,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           REG_C(A4)
            JMP             (A6)


F2_D:       ;   LD  D,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           REG_D(A4)
            JMP             (A6)


F2_E:       ;   LD  E,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           REG_E(A4)
            JMP             (A6)


F2_H:       ;   LD  H,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           REG_H(A4)
            JMP             (A6)


F2_L:       ;   LD  L,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           REG_L(A4)
            JMP             (A6)


F2_A:       ;   LD  A,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           (A4)
            JMP             (A6)


F3_B:       ;   LD  (HL),B
            MOVE.W          REG_H(A4),D0
            POKE8           REG_B(A4)
            JMP             (A6)


F3_C:       ;   LD  (HL),C
            MOVE.W          REG_H(A4),D0
            POKE8           REG_C(A4)
            JMP             (A6)


F3_D:       ;   LD  (HL),D
            MOVE.W          REG_H(A4),D0
            POKE8           REG_D(A4)
            JMP             (A6)


F3_E:       ;   LD  (HL),E
            MOVE.W          REG_H(A4),D0
            POKE8           REG_E(A4)
            JMP             (A6)


F3_H:       ;   LD  (HL),H
            MOVE.W          REG_H(A4),D0
            POKE8           REG_H(A4)
            JMP             (A6)


F3_L:       ;   LD  (HL),L
            MOVE.W          REG_H(A4),D0
            POKE8           REG_L(A4)
            JMP             (A6)


F3_A:       ;   LD  (HL),A
            MOVE.W          REG_H(A4),D0
            POKE8           (A4)
            JMP             (A6)


F4:         ;   LD  (HL),nn
            GETN            D1
            MOVE.W          REG_H(A4),D0
            POKE8           D1
            JMP             (A6)


F5:         ;   LD  A,(BC)
            MOVE.W          REG_B(A4),D0
            PEEK8           (A4)
            JMP             (A6)


F6:         ;   LD  A,(DE)
            MOVE.W          REG_D(A4),D0
            PEEK8           (A4)
            JMP             (A6)


F7:         ;   LD A,(nnnn)
            GETNN           D3
            MOVE.W          D3,D0
            PEEK8           (A4)
            JMP             (A6)


F8:         ;   LD  (BC),A
            MOVE.W          REG_B(A4),D0
            POKE8           (A4)
            JMP             (A6)


F9:         ;   LD  (DE),A
            MOVE.W          REG_D(A4),D0
            POKE8           (A4)
            JMP             (A6)


F10:        ;   LD (nnnn),A
            GETNN           D3
            MOVE.W          D3,D0
            POKE8           (A4)
            JMP             (A6)


F11_BC:      ;   LD  BC,nnnn
            GETNN           D3
            MOVE.W          D3,REG_B(A4)
            JMP             (A6)


F11_DE:      ;   LD  DE,nnnn
            GETNN           D3
            MOVE.W          D3,REG_D(A4)
            JMP             (A6)


F11_HL:      ;   LD  HL,nnnn
            GETNN           D3
            MOVE.W          D3,REG_H(A4)
            JMP             (A6)


F11_SP:      ;   LD  SP,nnnn
            GETNN           D6
            JMP             (A6)


F12:        ;   LD  HL, (nnnn)
            GETNN           D3
            PEEK16          D3,D0
            MOVE.W          D0,REG_H(A4)
            JMP             (A6)


F13:        ;   LD  (nnnn), HL
            GETNN           D3
            MOVE.W          D3,D0
            POKE8           REG_L(A4)
            MOVE.W          D3,D0
            ADDQ.W          #1,D0
            POKE8           REG_H(A4)
            JMP             (A6)


F14:        ;   LD  SP, HL
            MOVE.W          REG_H(A4),D6
            JMP             (A6)


F15_BC:     ;   PUSH BC
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           REG_B(A4)
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           REG_C(A4)
            JMP             (A6)


F15_DE:     ;   PUSH DE
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           REG_D(A4)
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           REG_E(A4)
            JMP             (A6)


F15_HL:     ;   PUSH HL
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           REG_H(A4)
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           REG_L(A4)
            JMP             (A6)


F15_AF:     ;   PUSH AF
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           (A4)
            SUBQ.W          #1,D6
            MOVE.W          D6,D0
            POKE8           (A3)
            JMP             (A6)


F16_BC:     ;   POP BC
            MOVE.W          D6,D0
            ADDQ.W          #2,D6
            PEEK16          D0,D3
            MOVE.W          D3,REG_B(A4)
            JMP             (A6)


F16_DE:     ;   POP DE
            MOVE.W          D6,D0
            ADDQ.W          #2,D6
            PEEK16          D0,D3
            MOVE.W          D3,REG_D(A4)
            JMP             (A6)


F16_HL:     ;   POP HL
            MOVE.W          D6,D0
            ADDQ.W          #2,D6
            PEEK16          D0,D3
            MOVE.W          D3,REG_H(A4)
            JMP             (A6)


F16_AF:     ;   POP AF
            MOVE.W          D6,D0
            ADDQ.W          #2,D6
            PEEK16          D0,D3
            MOVE.W          D3,(A4)
            JMP             (A6)


F17:        ;   EX  DE,HL
            MOVE.L          REG_D(A4),D0
            SWAP            D0
            MOVE.L          D0,REG_D(A4)
            MOVEQ           #0,D0
            JMP             (A6)


F18:        ;   EX  AF,AF'
            MOVE.W          (A4),D0
            MOVE.W          REG_A_(A4),(A4)
            MOVE.W          D0,REG_A_(A4)
            JMP             (A6)


F19:        ;   EXX
            MOVE.W          REG_B(A4),D0
            MOVE.W          REG_B_(A4),REG_B(A4)
            MOVE.W          D0,REG_B_(A4)
            MOVE.L          REG_D(A4),D0
            MOVE.L          REG_D_(A4),REG_D(A4)
            MOVE.L          D0,REG_D_(A4)
            MOVEQ           #0,D0
            JMP             (A6)


F20:        ;   EX  (SP), HL
            MOVE.W          D6,D0
            PEEK16          D0,D3
            MOVE.W          REG_H(A4),D0
            MOVE.W          D3,REG_H(A4)
            MOVE.W          D0,D3
            MOVE.W          D6,D0
            POKE8           D3
            MOVE.W          D6,D0
            ADDQ.W          #1,D0
            LSR.W           #8,D3
            POKE8           D3
            JMP             (A6)


F21_B:      ;   ADD A,B
            MOVE.B          REG_B(A4),D1
            ADD_R8
            JMP             (A6)


F21_C:      ;   ADD A,C
            MOVE.B          REG_C(A4),D1
            ADD_R8
            JMP             (A6)


F21_D:      ;   ADD A,D
            MOVE.B          REG_D(A4),D1
            ADD_R8
            JMP             (A6)


F21_E:      ;   ADD A,E
            MOVE.B          REG_E(A4),D1
            ADD_R8
            JMP             (A6)


F21_H:      ;   ADD A,H
            MOVE.B          REG_H(A4),D1
            ADD_R8
            JMP             (A6)


F21_L:      ;   ADD A,L
            MOVE.B          REG_L(A4),D1
            ADD_R8
            JMP             (A6)


F21_A:      ;   ADD A,A
            MOVE.B          (A4),D1
            ADD_R8
            JMP             (A6)


F22:        ;   ADD A,nn
            GETN            D1
            ADD_R8
            JMP             (A6)


F23:        ;   ADD A,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D1
            ADD_R8
            JMP             (A6)


F24_B:      ;   ADC A,B
            MOVE.B          REG_B(A4),D1
            ADC_R8
            JMP             (A6)


F24_C:      ;   ADC A,C
            MOVE.B          REG_C(A4),D1
            ADC_R8
            JMP             (A6)


F24_D:      ;   ADC A,D
            MOVE.B          REG_D(A4),D1
            ADC_R8
            JMP             (A6)


F24_E:      ;   ADC A,E
            MOVE.B          REG_E(A4),D1
            ADC_R8
            JMP             (A6)


F24_H:      ;   ADC A,H
            MOVE.B          REG_H(A4),D1
            ADC_R8
            JMP             (A6)


F24_L:      ;   ADC A,L
            MOVE.B          REG_L(A4),D1
            ADC_R8
            JMP             (A6)


F24_A:      ;   ADC A,A
            MOVE.B          (A4),D1
            ADC_R8
            JMP             (A6)


F24_N:      ;   ADC A,nn
            GETN            D1
            ADC_R8
            JMP             (A6)


F24_HL:     ;   ADC A,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D1
            ADC_R8
            JMP             (A6)


F25_B:      ;   SUB  B
            MOVE.B          REG_B(A4),D1
            SUB_R8
            JMP             (A6)


F25_C:      ;   SUB   C
            MOVE.B          REG_C(A4),D1
            SUB_R8
            JMP             (A6)


F25_D:      ;   SUB   D
            MOVE.B          REG_D(A4),D1
            SUB_R8
            JMP             (A6)


F25_E:      ;   SUB   E
            MOVE.B          REG_E(A4),D1
            SUB_R8
            JMP             (A6)


F25_H:      ;   SUB   H
            MOVE.B          REG_H(A4),D1
            SUB_R8
            JMP             (A6)


F25_L:      ;   SUB   L
            MOVE.B          REG_L(A4),D1
            SUB_R8
            JMP             (A6)


F25_A:      ;   SUB   A
            MOVE.W          #$0042,(A4) ; A=0, F=Z+N
            JMP             (A6)


F25_N:      ;   SUB   nn
            GETN            D1
            SUB_R8
            JMP             (A6)


F25_HL:     ;   SUB   (HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D1
            SUB_R8
            JMP             (A6)


F26_B:      ;   SBC A,B
            MOVE.B          REG_B(A4),D1
            SBC_R8
            JMP             (A6)


F26_C:      ;   SBC A,C
            MOVE.B          REG_C(A4),D1
            SBC_R8
            JMP             (A6)


F26_D:      ;   SBC A,D
            MOVE.B          REG_D(A4),D1
            SBC_R8
            JMP             (A6)


F26_E:      ;   SBC A,E
            MOVE.B          REG_E(A4),D1
            SBC_R8
            JMP             (A6)


F26_H:      ;   SBC A,H
            MOVE.B          REG_H(A4),D1
            SBC_R8
            JMP             (A6)


F26_L:      ;   SBC A,L
            MOVE.B          REG_L(A4),D1
            SBC_R8
            JMP             (A6)


F26_A:      ;   SBC A,A
            MOVE.B          (A4),D1
            SBC_R8
            JMP             (A6)


F26_N:      ;   SBC A,nn
            GETN            D1
            SBC_R8
            JMP             (A6)


F26_HL:     ;   SBC A,(HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D1
            SBC_R8
            JMP             (A6)


F27_B:      ;   AND B
            MOVE.B          REG_B(A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_C:      ;   AND C
            MOVE.B          REG_C(A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_D:      ;   AND D
            MOVE.B          REG_D(A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_E:      ;   AND E
            MOVE.B          REG_E(A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_H:      ;   AND H
            MOVE.B          REG_H(A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_L:      ;   AND L
            MOVE.B          REG_L(A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_HL:     ;   AND (HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_A:      ;   AND A
            MOVE.B          (A4),D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F27_N:      ;   AND nn
            GETN            D0
            AND.B           D0,(A4)
            FLAG_LOG
            OR.B            #FLAG_H,(A3)
            JMP             (A6)


F28_B:      ;   XOR B
            MOVE.B          REG_B(A4),D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_C:      ;   XOR C
            MOVE.B          REG_C(A4),D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_D:      ;   XOR D
            MOVE.B          REG_D(A4),D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_E:      ;   XOR E
            MOVE.B          REG_E(A4),D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_H:      ;   XOR H
            MOVE.B          REG_H(A4),D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_L:      ;   XOR L
            MOVE.B          REG_L(A4),D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_HL:     ;   XOR (HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F28_A:      ;   XOR A
            MOVE.W          #$0044,(A4) ; A=0, F=Z+Parite
            JMP             (A6)


F28_N:      ;   XOR nn
            GETN            D0
            EOR.B           D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_B:      ;   OR  B
            MOVE.B          REG_B(A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_C:      ;   OR  C
            MOVE.B          REG_C(A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_D:      ;   OR  D
            MOVE.B          REG_D(A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_E:      ;   OR  E
            MOVE.B          REG_E(A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_H:      ;   OR  H
            MOVE.B          REG_H(A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_L:      ;   OR  L
            MOVE.B          REG_L(A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_HL:     ;   OR  (HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_A:      ;   OR  A
            MOVE.B          (A4),D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F29_N:      ;   OR  nn
            GETN            D0
            OR.B            D0,(A4)
            FLAG_LOG
            JMP             (A6)


F30_B:      ;   CP   B
            MOVE.B          REG_B(A4),D1
            CP_R8
            JMP             (A6)


F30_C:      ;   CP    C
            MOVE.B          REG_C(A4),D1
            CP_R8
            JMP             (A6)


F30_D:      ;   CP    D
            MOVE.B          REG_D(A4),D1
            CP_R8
            JMP             (A6)


F30_E:      ;   CP    E
            MOVE.B          REG_E(A4),D1
            CP_R8
            JMP             (A6)


F30_H:      ;   CP    H
            MOVE.B          REG_H(A4),D1
            CP_R8
            JMP             (A6)


F30_L:      ;   CP    L
            MOVE.B          REG_L(A4),D1
            CP_R8
            JMP             (A6)


F30_A:      ;   CP    A
            MOVE.B          #$42,(A3) ; F=Z+N
            JMP             (A6)


F30_N:      ;   CP    nn
            GETN            D1
            CP_R8
            JMP             (A6)


F30_HL:     ;   CP    (HL)
            MOVE.W          REG_H(A4),D0
            PEEK8           D1
            CP_R8
            JMP             (A6)


F31_B:      ;  INC  B
            ADDQ.B          #1,REG_B(A4)
            FLAG_INC        REG_B(A4)
            JMP             (A6)


F31_C:      ;  INC  C
            ADDQ.B          #1,REG_C(A4)
            FLAG_INC        REG_C(A4)
            JMP             (A6)


F31_D:      ;  INC  D
            ADDQ.B          #1,REG_D(A4)
            FLAG_INC        REG_D(A4)
            JMP             (A6)


F31_E:      ;  INC  E
            ADDQ.B          #1,REG_E(A4)
            FLAG_INC        REG_E(A4)
            JMP             (A6)


F31_H:      ;  INC  H
            ADDQ.B          #1,REG_H(A4)
            FLAG_INC        REG_H(A4)
            JMP             (A6)


F31_L:      ;  INC  L
            ADDQ.B          #1,REG_L(A4)
            FLAG_INC        REG_L(A4)
            JMP             (A6)


F31_A:      ;  INC  A
            ADDQ.B          #1,(A4)
            FLAG_INC        (A4)
            JMP             (A6)


F32:        ;  INC  (HL)
            MOVE.W          REG_H(A4),D0
            PEEKA
            ADDQ.B          #1,D2
            MOVE            CCR,D3
            POKEA
            FLAG_INC        D2
            JMP             (A6)


F33_B:      ;  DEC  B
            SUBQ.B          #1,REG_B(A4)
            FLAG_DEC        REG_B(A4)
            JMP             (A6)


F33_C:      ;  DEC  C
            SUBQ.B          #1,REG_C(A4)
            FLAG_DEC        REG_C(A4)
            JMP             (A6)


F33_D:      ;  DEC  D
            SUBQ.B          #1,REG_D(A4)
            FLAG_DEC        REG_D(A4)
            JMP             (A6)


F33_E:      ;  DEC  E
            SUBQ.B          #1,REG_E(A4)
            FLAG_DEC        REG_E(A4)
            JMP             (A6)


F33_H:      ;  DEC  H
            SUBQ.B          #1,REG_H(A4)
            FLAG_DEC        REG_H(A4)
            JMP             (A6)


F33_L:      ;  DEC  L
            SUBQ.B          #1,REG_L(A4)
            FLAG_DEC        REG_L(A4)
            JMP             (A6)


F33_A:      ;  DEC  A
            SUBQ.B          #1,(A4)
            FLAG_DEC        (A4)
            JMP             (A6)


F34:        ;  DEC  (HL)
            MOVE.W          REG_H(A4),D0
            PEEKA
            SUBQ.B          #1,D2
            MOVE            CCR,D3
            POKEA
            FLAG_DEC        D2
            JMP             (A6)


F35:        ;   DAA
            MOVEQ           #0,D0
            MOVE.B          (A4),D0
            MOVE.B          (A3),D1
            MOVE.B          D1,D3
            AND.W           #FLAG_H,D1
            LSL.W           #6,D1
            AND.W           #FLAG_N!FLAG_C,D3
            LSL.W           #8,D3
            OR.W            D1,D0
            OR.W            D3,D0
            LEA             TabDAA,A0
            MOVE.W          0(A0,D0.W*2),(A4)
            JMP             (A6)


F36:        ;   CPL
            NOT.B           (A4)
            OR.B            #FLAG_H!FLAG_N,(A3)
            JMP             (A6)


F37:        ;   CCF
            EOR.B           #1,(A3)
            AND.B           #N_FLAG_N,(A3)
            JMP             (A6)


F38:        ;   SCF
            OR.B            #FLAG_C,(A3)
            AND.B           #N_FLAG_H&N_FLAG_N,(A3)
            JMP             (A6)


F40:        ;   HALT
            TST.B           _IntZ80
            BEQ.S           F40
            JMP             (A6)


F41:        ;   DI
            CLR.B           REG_IFF1(A4)
            JMP             (A6)


F42:        ;   EI
            MOVE.B          #FLAG_V,REG_IFF1(A4)
            JMP             (A6)


F43_BC:     ;   ADD HL,BC
            AND.B             #N_FLAG_N&N_FLAG_C,(A3)
            MOVE.W            REG_B(A4),D1
            ADD.W             D1,REG_H(A4)
            C_CARRY
            JMP             (A6)



F43_DE:     ;   ADD HL,DE
            AND.B             #N_FLAG_N&N_FLAG_C,(A3)
            MOVE.W            REG_D(A4),D1
            ADD.W             D1,REG_H(A4)
            C_CARRY
            JMP             (A6)



F43_HL:     ;   ADD HL,HL
            AND.B             #N_FLAG_N&N_FLAG_C,(A3)
            MOVE.W            REG_H(A4),D1
            ADD.W             D1,REG_H(A4)
            C_CARRY
            JMP             (A6)



F43_SP:     ;   ADD HL,SP
            AND.B             #N_FLAG_N&N_FLAG_C,(A3)
            ADD.W             D6,REG_H(A4)
            C_CARRY
            JMP             (A6)



F44_BC:     ;   INC BC
            ADDQ.W          #1,REG_B(A4)
            JMP             (A6)


F44_DE:     ;   INC DE
            ADDQ.W          #1,REG_D(A4)
            JMP             (A6)


F44_HL:     ;   INC HL
            ADDQ.W          #1,REG_H(A4)
            JMP             (A6)


F44_SP:     ;   INC SP
            ADDQ.W          #1,D6
            JMP             (A6)


F45_BC:     ;   DEC BC
            SUBQ.W          #1,REG_B(A4)
            JMP             (A6)


F45_DE:     ;   DEC DE
            SUBQ.W          #1,REG_D(A4)
            JMP             (A6)


F45_HL:     ;   DEC HL
            SUBQ.W          #1,REG_H(A4)
            JMP             (A6)


F45_SP:     ;   DEC SP
            SUBQ.W          #1,D6
            JMP             (A6)


F46:        ;   RLCA
            AND.B           #N_FLAG_H&N_FLAG_N&N_FLAG_C,(A3)
            MOVE.B          (A4),D0
            ROL.B           #1,D0
            C_CARRY
            MOVE.B          D0,(A4)
            JMP             (A6)


F47:        ;   RLA
            MOVE.B          (A4),D0
            MOVE.B          (A3),D1
            ROXR.B          #1,D1
            ROXL.B          #1,D0
            ROXL.B          #1,D1
            AND.B           #N_FLAG_H&N_FLAG_N,D1
            MOVE.B          D1,(A3)
            MOVE.B          D0,(A4)
            JMP             (A6)


F48:        ;   RRCA
            AND.B           #N_FLAG_H&N_FLAG_N&N_FLAG_C,(A3)
            MOVE.B          (A4),D0
            ROR.B           #1,D0
            C_CARRY
            MOVE.B          D0,(A4)
            JMP             (A6)


F49:        ;   RRA
            MOVE.B          (A4),D0
            MOVE.B          (A3),D1
            ROXR.B          #1,D1
            ROXR.B          #1,D0
            ROXL.B          #1,D1
            AND.B           #N_FLAG_H&N_FLAG_N,D1
            MOVE.B          D1,(A3)
            MOVE.B          D0,(A4)
            JMP             (A6)


F50:        ;   JP    nnnn
            GETNN           D7
            JMP             (A6)


F51_NZ       ;   JP    NZ,nnnn
            GETNN           D3
            BTST.B          #6,(A3)
            BNE.S           F51_NZ_1
            MOVE.W          D3,D7
F51_NZ_1    JMP             (A6)


F51_Z        ;   JP    Z,nnnn
            GETNN           D3
            BTST.B          #6,(A3)
            BEQ.S           F51_Z_1
            MOVE.W          D3,D7
F51_Z_1     JMP             (A6)


F51_NC       ;   JP    NC,nnnn
            GETNN           D3
            BTST.B          #0,(A3)
            BNE.S           F51_NC_1
            MOVE.W          D3,D7
F51_NC_1    JMP             (A6)


F51_C        ;   JP    C,nnnn
            GETNN           D3
            BTST.B          #0,(A3)
            BEQ.S           F51_C_1
            MOVE.W          D3,D7
F51_C_1     JMP             (A6)


F51_PO       ;   JP    PO,nnnn
            GETNN           D3
            BTST.B          #2,(A3)
            BNE.S           F51_PO_1
            MOVE.W          D3,D7
F51_PO_1    JMP             (A6)


F51_PE       ;   JP    PE,nnnn
            GETNN           D3
            BTST.B          #2,(A3)
            BEQ.S           F51_PE_1
            MOVE.W          D3,D7
F51_PE_1    JMP             (A6)


F51_P        ;   JP    P,nnnn
            GETNN           D3
            BTST.B          #7,(A3)
            BNE.S           F51_P_1
            MOVE.W          D3,D7
F51_P_1     JMP             (A6)


F51_M        ;   JP    M,nnnn
            GETNN           D3
            BTST.B          #7,(A3)
            BEQ.S           F51_M_1
            MOVE.W          D3,D7
F51_M_1     JMP             (A6)


F52:        ;   JR      ee
            GETN            D0
            EXT.W           D0
            ADD.W           D0,D7
            JMP             (A6)


F53:        ;   JR    C,ee
            MOVE.W          D7,D0
            ADDQ.W          #1,D7
            BTST.B          #0,(A3)
            BEQ.S           F53_1
            PEEK8           D0
            EXT.W           D0
            ADD.W           D0,D7
F53_1       JMP             (A6)


F54:        ;   JR    NC,ee
            MOVE.W          D7,D0
            ADDQ.W          #1,D7
            BTST.B          #0,(A3)
            BNE.S           F54_1
            PEEK8           D0
            EXT.W           D0
            ADD.W           D0,D7
F54_1       JMP             (A6)


F55:        ;   JR    Z,ee
            MOVE.W          D7,D0
            ADDQ.W          #1,D7
            BTST.B          #6,(A3)
            BEQ.S           F55_1
            PEEK8           D0
            EXT.W           D0
            ADD.W           D0,D7
F55_1       JMP             (A6)

F56:        ;   JR    NZ,ee
            MOVE.W          D7,D0
            ADDQ.W          #1,D7
            BTST.B          #6,(A3)
            BNE.S           F56_1
            PEEK8           D0
            EXT.W           D0
            ADD.W           D0,D7
F56_1       JMP             (A6)


F57:        ;   JP      (HL)
            MOVE.W          REG_H(A4),D7
            JMP             (A6)


F58:        ;   DJNZ        ee
            MOVE.W          D7,D0
            ADDQ.W          #1,D7
            SUBQ.B          #1,REG_B(A4)
            BEQ.S           F58_1
            PEEK8           D0
            EXT.W           D0
            ADD.W           D0,D7
F58_1       JMP             (A6)


F59:        ;   CALL    nn
            GETNN           D3
            PUSHPC
            MOVE.W          D3,D7
            JMP             (A6)


F60_NZ       ;   CALL    NZ,nn
            GETNN           D3
            BTST.B          #6,(A3)
            BNE.W           F60_NZ_1
            PUSHPC
            MOVE.W          D3,D7
F60_NZ_1    JMP             (A6)


F60_Z        ;   CALL    Z,nn
            GETNN           D3
            BTST.B          #6,(A3)
            BEQ.W           F60_Z_1
            PUSHPC
            MOVE.W          D3,D7
F60_Z_1     JMP             (A6)


F60_NC       ;   CALL    NC,nn
            GETNN           D3
            BTST.B          #0,(A3)
            BNE.W           F60_NC_1
            PUSHPC
            MOVE.W          D3,D7
F60_NC_1    JMP             (A6)


F60_C        ;   CALL    C,nn
            GETNN           D3
            BTST.B          #0,(A3)
            BEQ.W           F60_C_1
            PUSHPC
            MOVE.W          D3,D7
F60_C_1     JMP             (A6)


F60_PO       ;   CALL    PO,nn
            GETNN           D3
            BTST.B          #2,(A3)
            BNE.W           F60_PO_1
            PUSHPC
            MOVE.W          D3,D7
F60_PO_1    JMP             (A6)


F60_PE       ;   CALL    PE,nn
            GETNN           D3
            BTST.B          #2,(A3)
            BEQ.W           F60_PE_1
            PUSHPC
            MOVE.W          D3,D7
F60_PE_1    JMP             (A6)


F60_P        ;   CALL    P,nn
            GETNN           D3
            BTST.B          #7,(A3)
            BNE.W           F60_P_1
            PUSHPC
            MOVE.W          D3,D7
F60_P_1     JMP             (A6)


F60_M        ;   CALL    M,nn
            GETNN           D3
            BTST.B          #7,(A3)
            BEQ.W           F60_M_1
            PUSHPC
            MOVE.W          D3,D7
F60_M_1     JMP             (A6)


F61:        ;   RET
            POPPC
            JMP             (A6)


F62_NZ       ;   RET NZ
            BTST.B          #6,(A3)
            BNE.S           F62_NZ_1
            POPPC
F62_NZ_1    JMP             (A6)


F62_Z        ;   RET Z
            BTST.B          #6,(A3)
            BEQ.S           F62_Z_1
            POPPC
F62_Z_1     JMP             (A6)


F62_NC       ;   RET NC
            BTST.B          #0,(A3)
            BNE.S           F62_NC_1
            POPPC
F62_NC_1    JMP             (A6)


F62_C        ;   RET C
            BTST.B          #0,(A3)
            BEQ.S           F62_C_1
            POPPC
F62_C_1     JMP             (A6)


F62_PO       ;   RET PO
            BTST.B          #2,(A3)
            BNE.S           F62_PO_1
            POPPC
F62_PO_1    JMP             (A6)


F62_PE       ;   RET PE
            BTST.B          #2,(A3)
            BEQ.S           F62_PE_1
            POPPC
F62_PE_1    JMP             (A6)


F62_P        ;   RET P
            BTST.B          #7,(A3)
            BNE.S           F62_P_1
            POPPC
F62_P_1     JMP             (A6)


F62_M       ;   RET M
            BTST.B          #7,(A3)
            BEQ.S           F62_M_1
            POPPC
F62_M_1     JMP             (A6)


F63_00      ;   RST 00H
            PUSHPC
            MOVE.W          #$00,D7
            JMP             (A6)


F63_08      ;   RST 08H
            PUSHPC
            MOVE.W          #$08,D7
            JMP             (A6)


F63_10      ;   RST 10H
            PUSHPC
            MOVE.W          #$10,D7
            JMP             (A6)


F63_18      ;   RST 18H
            PUSHPC
            MOVE.W          #$18,D7
            JMP             (A6)


F63_20      ;   RST 20H
            PUSHPC
            MOVE.W          #$20,D7
            JMP             (A6)


F63_28      ;   RST 28H
            PUSHPC
            MOVE.W          #$28,D7
            JMP             (A6)


F63_30      ;   RST 30H
            PUSHPC
            MOVE.W          #$30,D7
            JMP             (A6)


F63_38      ;   RST 38H
            PUSHPC
            MOVE.W          #$38,D7
            JMP             (A6)


F64:        ;   IN  A,(nn)
            GETN            D1
            MOVE.B          (A4),D0
            LSL.W           #8,D0
            MOVE.B          D1,D0
            BSR.W           ReadPort
            MOVE.B          D0,(A4)
            JMP             (A6)
            

F65:        ;   OUT (nn),A
            GETN            D1
            MOVE.B          (A4),D0
            LSL.W           #8,D0
            AND.W           D1,D0
            MOVE.B          (A4),D1
            BSR.W           WritePort
            JMP             (A6)


F66:        ;   Special code CB
            GETN            D0
            ADDQ.B          #1,REG_R(A4)
            LEA             TabCB,A0
            JMP             ([A0,D0.W*4])


F67:        ;   Special code ED
            GETN            D0
            ADDQ.B          #1,REG_R(A4)
            LEA             TabED,A0
            JMP             ([A0,D0.W*4])


F68:        ;   Special code DD : IX
            GETN            D0
            ADDQ.B          #1,REG_R(A4)
            LEA             TabIX,A0
            JMP             ([A0,D0.W*4])


F69:        ;   Special code FD : IY
            GETN            D0
            ADDQ.B          #1,REG_R(A4)
            LEA             TabIY,A0
            JMP             ([A0,D0.W*4])


            SECTION         data,DATA


TabInstr:
            DC.L            Z80,F11_BC,F8,F44_BC,F31_B,F33_B,F1_B,F46
            DC.L            F18,F43_BC,F5,F45_BC,F31_C,F33_C,F1_C,F48
            DC.L            F58,F11_DE,F9,F44_DE,F31_D,F33_D,F1_D,F47
            DC.L            F52,F43_DE,F6,F45_DE,F31_E,F33_E,F1_E,F49
            DC.L            F56,F11_HL,F13,F44_HL,F31_H,F33_H,F1_H,F35
            DC.L            F55,F43_HL,F12,F45_HL,F31_L,F33_L,F1_L,F36
            DC.L            F54,F11_SP,F10,F44_SP,F32,F34,F4,F38
            DC.L            F53,F43_SP,F7,F45_SP,F31_A,F33_A,F1_A,F37
            DC.L            Z80,F0_BC,F0_BD,F0_BE,F0_BH,F0_BL,F2_B,F0_BA
            DC.L            F0_CB,Z80,F0_CD,F0_CE,F0_CH,F0_CL,F2_C,F0_CA
            DC.L            F0_DB,F0_DC,Z80,F0_DE,F0_DH,F0_DL,F2_D,F0_DA
            DC.L            F0_EB,F0_EC,F0_ED,Z80,F0_EH,F0_EL,F2_E,F0_EA
            DC.L            F0_HB,F0_HC,F0_HD,F0_HE,Z80,F0_HL,F2_H,F0_HA
            DC.L            F0_LB,F0_LC,F0_LD,F0_LE,F0_LH,Z80,F2_L,F0_LA
            DC.L            F3_B,F3_C,F3_D,F3_E,F3_H,F3_L,F40,F3_A
            DC.L            F0_AB,F0_AC,F0_AD,F0_AE,F0_AH,F0_AL,F2_A,Z80
            DC.L            F21_B,F21_C,F21_D,F21_E,F21_H,F21_L,F23,F21_A
            DC.L            F24_B,F24_C,F24_D,F24_E,F24_H,F24_L,F24_HL,F24_A
            DC.L            F25_B,F25_C,F25_D,F25_E,F25_H,F25_L,F25_HL,F25_A
            DC.L            F26_B,F26_C,F26_D,F26_E,F26_H,F26_L,F26_HL,F26_A
            DC.L            F27_B,F27_C,F27_D,F27_E,F27_H,F27_L,F27_HL,F27_A
            DC.L            F28_B,F28_C,F28_D,F28_E,F28_H,F28_L,F28_HL,F28_A
            DC.L            F29_B,F29_C,F29_D,F29_E,F29_H,F29_L,F29_HL,F29_A
            DC.L            F30_B,F30_C,F30_D,F30_E,F30_H,F30_L,F30_HL,F30_A
            DC.L            F62_NZ,F16_BC,F51_NZ,F50,F60_NZ,F15_BC,F22,F63_00
            DC.L            F62_Z,F61,F51_Z,F66,F60_Z,F59,F24_N,F63_08
            DC.L            F62_NC,F16_DE,F51_NC,F65,F60_NC,F15_DE,F25_N,F63_10
            DC.L            F62_C,F19,F51_C,F64,F60_C,F68,F26_N,F63_18
            DC.L            F62_PO,F16_HL,F51_PO,F20,F60_PO,F15_HL,F27_N,F63_20
            DC.L            F62_PE,F57,F51_PE,F17,F60_PE,F67,F28_N,F63_28
            DC.L            F62_P,F16_AF,F51_P,F41,F60_P,F15_AF,F29_N,F63_30
            DC.L            F62_M,F14,F51_M,F42,F60_M,F69,F30_N,F63_38


            XDEF            TabInstr
            XDEF            F12         ; Utilisé par FCTED.S
            XDEF            F13         ; Utilisé par FCTED.S
            XDEF            F63_38      ; Utilisé par MAINASM.S
            END
