.ORG $B4E0
ora_data:
.BYTE $08,$04,$02,$01,$80,$40,$20,$10
and_data:
.BYTE $F7,$FB,$FD,$FE,$7F,$BF,$DF,$EF
button = $F5
flag = $010E
pause = $0025
.org $B500
data_protect:
PHA
TXA
PHA
TYA
PHA
pause_cmp:
LDA pause
CMP #$01
BEQ button_press
PLA
TAY
PLA
TAX
PLA
RTS
button_press:
ini_Y:
LDY #$00
button_cmp:
LDA button,X
CMP ora_data,Y
BNE count_Y_cmp
flag_cmp:
LDA flag,X
AND ora_data,Y
BNE flag_and
flag_ora:
LDA flag,X
ORA ora_data,Y
STA flag,X
BNE count_Y_cmp
flag_and:
LDA flag,X
AND and_data,Y
STA flag,X
count_Y_cmp:
INY
CPY #$08
BCC button_cmp
data_extract:
PLA
TAY
PLA
TAX
PLA
return:
RTS