     Bugs and flaws of the 6510:

      Zeropage addressing modes & page wraps (fixed on 65816 in native mode):

       If you use an indexed-zeropage addressing mode, either direct or indirect,
       it is not able to leave the zeropage on page-wraps. Examples:

        LDX #$01
        LDA $FF,X

       will fetch from adress $0000 and not $0100.

        LDA ($FF),Y

        LDX #$00
        LDA ($FF,X)

        LDX #$FF
        LDA ($00,X)

       will all fetch the low-byte from $00FF and the high-byte from $0000.

      Indirect addressing mode & page wraps (fixed on 65816):

       If you use the indirect addressing mode, PCH will not be incremented on
       page wraps. Example:

        JMP ($C0FF)

       will fetch the low-byte from $C0FF and the high-byte from $C000.

      Decimal mode (flags fixed on 65816):

       In decimal mode, N and V are set after the high-order nibble is added or
       subtracted but before it is decimal-corrected, according to binary rules.
       Z is always set according to binary mode, not decimal.

       When decimal-correcting a nibble for addition, following rules apply:

        IF ((nibble >= $A) \/ C') THEN nibble += 6
        C'' = C' \/ (nibble + 6 >= $A)

       When decimal-correcting a nibble for subtraction,  following rules apply:

        IF (~C') THEN nibble -= 6
        C'' = C' \/ (nibble - 6 < 0)

       Thus, $F + $F in decimal mode is $14, not $24. Also, decimal correction
       can result in nibbles ranging from $A-$F. For example, $C + $D results
       in $19 before correction, $1F after.