&演算子によって変数のアドレスを得られる機能を追加

例1:
dim a
a:=123
という変数があったとして、このアドレスを得るには
dim p
p:=&a
などとする。これでpにはaのアドレスが入る。
アドレスは具体的にはint32型のただの数値。（特別な値などではない。ただの数字にすぎない）
ただし、
osecpu-basicでは、基本型をfix32（符号1bit,整数15bit,小数16bitの固定小数）として扱うため、
たとえば アドレス65536は、fix32 の 1 に相当するので、この辺の兼ね合いが少々ややこしい。
（具体的には、直値でアドレス 123 を代入したい場合は p:=123>>16 のように、>>16してやる必要がある等の面倒さ）

例1では、現在 p には a のアドレスが入っているので、これに a と同じ型の変数をアタッチしてやることで、読み書きが可能。
例えば:
dim x
print p<-x
とすれば、a に格納されてる数 123 を印字できるし、もちろん x ではなく直接 a によって以下のように
print p<-a
としても同様に 123 を印字できる。この場合の意味は「aのアドレスをaにアタッチする」ということで、
すなわち a に直接アクセスするのと同じ意味。

配列の場合も同様に & によってアドレスを得られる。
例2:
dim a(100)
dim p
p:=a(50)
この場合は、pにはa(50)のアドレスが入る。すなわち、以下はどちらも同じ位置への読み書きとなる:
dim x
p<-x := 123
p<-a(0) := 123
a(50) := 123
上記はどれも同じ位置への読み書きとなるので、つまりa(50)へ123を代入することを意味する。

例えば、長さ 100 の配列の 50 番目から 9 個分を、3次の正方行列の単位行列としたい場合は、以下の用な方法も可能。
例3:
dim a(100)
dim m(3,3)
dim p
p := a(50)
mat p<-m := idn
これで a(50) ～ a(59) までを m(3,3) の正方行列として扱えて、単位行列をセットする意味となる。

面倒なのでポインターと言ってしまうが、
上記の例3のポインター p など、どれも特別な変数ではなく、通常の変数と同じで、中身はただの数字にすぎない。
（ただし数字のフォーマットがfix32ではなくint32であるが）
ただの数字なので、普通に演算を行うこともできる。
例4:
dim a(10)
a(0):=123
a(1):=234

dim p
p:=&a(0)
もしくは
p:=&a

上記の例4では、pにはa(0)のアドレスが入っている。
この p に、（int32フォーマットでの） 1 を足せば、p は a(1) のアドレスとなる:
p := p + (1 >> 16)
dim x
print p<-x
もしくは
print p<-a(0)

これで a(1) の内容、すなわち 234 が印字される。

すると考えるのは:
print p<-a(-1)
とすれば、a(0) の内容を指してほしいところだが、配列の添字にマイナスはサポートしていないので、これはできない。
もし同様のことをしたければ
p := p - (1 >> 16)
print p<-x
などの方法で行えば可能。

&によるアドレスについては、c言語のそれと似ているので、分かる人には分かり易いはずだが、
一方、アタッチに関しては、これと似た概念の言語を知らないので、例えて説明するのが難しいが、
アタッチはc言語に例えると、型変換の伴うポインター操作と似た作用なので、
要するにポインターの亜流として考えれば分かり易いかもしれない。