BUTTON()の戻り値を二進数で表示してみると、同時押ししたときにどんな値を返してくるのか、わかりやすいかも(≧∇≦)b
WHILE 1
CLS
LOCATE 0,0
B=BUTTON()
?FORMAT$("%016B",B)
IF B AND #A THEN ?"AND #A",(B AND #A)
IF B == #A THEN ?"==#A",(B==#A)
VSYNC
WEND
「B==#A」と「B AND #A」の違いという場合に見た目の違いで「『==』と『AND』の違い」と考えてしまうと理解できないかもしれません。
しかし、実は、IF B AND #A THEN ~ は IF (B AND #A)==#A THEN ~ と同じことなのですが、これを元に考えると IF B==#A THEN ~ と IF B AND #A THEN ~ の違いは「B」と「B AND #A」となります。
ANDはビット演算を行う演算子であり2進数の理解が必要不可欠なのですが、ボタン判定に用いる場合は2進数で考えることなくB AND #Aで「Bの値から#Aの値を取り出せる」くらいの認識で問題ありません。
右ボタン、Aボタン、Bボタンを同時に押している場合にはBの値は#RIGHT+#A+#Bになるのですが、B AND #Aはその中から#Aのみを取り出せるわけです。(Aボタンを押している場合はB AND #Aの値は#Aになる)
右ボタン、Bボタンを同時に押している場合(Aボタンを押していない場合)にはBの値は#RIGHT+#Bになるのですが、B AND #Aはその中から#Aのみを取り出せるけど#Aが無いため0となります。
こんな感じでB AND #Aで他のボタンを押していても関係なくAボタンを押しているかどうかが分かるわけです。