0 00000001 (1) 1 00000010 (2) 2 00000100 (4) 3 00001000 (8) 4 00010000 (16) 5 00100000 (32) 6 01000000 (64) 7 10000000 (128) EOR: 0 & 0 = 0 1 & 1 = 0 0 & 1 = 1 1 & 0 = 1 AND: 0 & 0 = 0 1 & 0 = 0 0 & 0 = 0 1 & 1 = 1 lda BIT_TABLE, x Sprite 0: eor #$ff : BIT_TABLE value = 1 00000001 11111111 ======== 11111110 Sprite 1: eor #$ff: BIT_TABLE value = 2 00000010 11111111 -------- 11111101 Sprite 2: eor #$ff: BIT_TABLE value = 4 00000100 11111111 -------- 11111011 Sprite 3: eor #$ff: BIT_TABLE value = 8 00001000 11111111 -------- 11110111 Sprite 4: eor #$ff: BIT_TABLE value = 16 00010000 11111111 -------- 11101111 Sprite 5: eor #$ff: BIT_TABLE value = 32 00100000 11111111 -------- 11011111 Sprite 6: eor #$ff: BIT_TABLE value = 64 01000000 11111111 ======== 10111111 Sprite 7: eor #$ff: BIT_TABLE value = 128 10000000 11111111 ======== 01111111 ================================================================== AND SPRITE_POS_X_EXTEND (53264). When a "1" is stored in 53264 we get the following results below AND results Sprite 0 11111111 00000001 ======== 00000001 Sprite 1 11111101 00000001 ======== 00000001 Sprite 2 11111011 00000001 ======== 00000001 Sprite 3 11110111 00000001 ======== 00000001 Sprite 4 11101111 00000001 00000001 Sprite 5 11011111 00000001 ======== 00000001 Sprite 6 10111111 00000001 ======== 00000001 Sprite 7 01111111 00000001 ======== 00000001