で、本題ですが、最初これを見たとき、B[I]のサイズ増加分を超えてメモリが減っていく現象(メモリリーク)が起きているのかな、と思ったのですが、そういうわけではなさそうですね。
STEP 100にして、ついでにI*8の値も表示して実行すると、普通に800バイトずつ減ってゆき、下のキャプチャのように感じになりました。CLEARでFREEMEMも起動時の値に戻りました。
DIM B[I] が「新サイズでメモリ確保 → 前サイズのメモリ開放」という順序で動くのだとすれば、この段階で Out of memory になるのも納得できます。
……と、朝っぱらからアルコール(飲み残し消化)モードで書く。
3そうだね プレイ済み