スマイルブーム小林です。 動作を確認してみました。 マギーさんのアドバイスのようにUSE部分をEXECにすることで解決します。 ◎エラーになる原因 USE 1ではSLOT1のプログラムテキストを内部的な実行コードへ変換だけ行います。変換しか行わないのでプログラム先頭にあるOPTION命令もVAR命令も実行されません。 OPTION STRICTが実行されていないので、SLOT1のプログラム内で宣言ナシの変数利用はエラーにならず、INIT_1のS$とINIT_2のVは、その場で生成された変数として実行されます。 INIT_3には宣言のない配列の利用が含まれているためエラーとなっています。 ◎EXECにすると動く理由 EXECは、USE 1を実行後にRUN 1を実行するような動きを行うため、RUNによって、SLOT1内の先頭にある OPTION2つとVAR命令が実行されて、その下のCOMMON DEFは実行されずプログラムの終わりに達してEND扱いとなりSLOT0に処理が戻ります。 ※EXECはENDまで行くとEXEC実行もとに処理が戻ります ちょっと特殊で分かりにくいですが、SLOT 1に置いたプログラムを初期化してから使う感覚でUSEの代わりにEXECを利用すると使いやすいと思います。