IchigoJam と ORANGE pico は、ともにBASIC言語を実行することができ、全く同じコードをそれぞれ実行できることもある。
そこで、環境を判別できれば、共通のコードで書ける部分は共通のコードを用い、配列やI/Oなどの異なる部分は分岐して実行できる可能性が出てくる。
IchigoJam では、ビットオア演算子の優先順位が比較演算子より高い。
(これは0.9系でも1.0系でも成り立つ)
一方、ORANGE pico では、ビット論理和演算子の優先順位が比較演算子より低い。
これを利用した、以下のプログラムで環境の判別を行うことができる。
10 IF 1|1<0 THEN GOTO 30
20 PRINT "IchigoJam":END
30 PRINT "ORANGE pico"
IchigoJam では 1|1<0 は (1|1)<0 すなわち 1<0 と解釈されるので、これは 0 になる。
一方、ORANGE pico では、1|1<0 は 1|(1<0) すなわち 1|0 と解釈されるので、これは 1 になる。
以下に、これを実際に IchigoJam と ORANGE pico でそれぞれ実行してみた結果を示す。
実際に環境が判別できていることがわかる。
※IchigoJamはjig.jpの登録商標です。

