NOTはBUTTON関数では使われない上位のビットまで演算してしまうため「負数表示が望ましくない」と感じられるのであればNBUTTON関数はNOTを使うならばANDと併用する必要があります。
DEF NBUTTON()
RETURN &1101111111111 AND NOT BUTTON()
END
このようにすれば正しく表示してくれますが、だにえるさんが作ったプログラムの方が短いですね。
表示ではなく判定だけ行うのであれば不要なビットを演算しても問題ないため押してないボタンを求めるにはNOTが非常に有用です。
回避パターン2
FOR I=1 TO 30000:NEXTなどの1フレーム以上かかる処理をAボタン入力待ちルーチンより前に記述する
これによって実行開始時にすでにAボタンを押している場合にBUTTON(2)でAボタンを入力した瞬間が取得できないためAボタン入力待ちルーチンのREPEAT~UNTILを抜ける条件を満たすことができず、一旦離して再びAボタンを押す必要がありAボタン入力待ちが正しく動作するようになります。