PetitModem 1.2.2をプチコン3号3.2.0で動かす

Pocket

任天堂3DSで動くBASIC処理系プチコン3号というものがあります。

基本的にタッチパネルでのソフトウェアキーボードしか入力手段がないのですが、音声経由でデータをやりとりするPetitModemというソフトウェアをれいさんという方が公開されています。

しかし最近のプチコン3号のアップデート(3.2.0)で動かなくなってしまったので、暫定的な対応策を行いました。作者のれいさんには連絡済なので、いずれ修正版がリリースされるはずですが、取り急ぎ修正方法を記録しておきます。対象バージョンはPetitModem 1.2.2です。

  1. 771行目、DEF FILLをDEF FILL2等に変更する
  2. 1035行目、A=1/0となっている箇所をA=A/0に変更する

3.2.0になって、FILLという命令が新設されたため、DEF FILLは多重定義エラーになります。FILLはプログラム中で実際には使っていないようなので、適当な名前に変えるか消すかでこの問題は解決できます。

もう一つの変更点として、それまで実行時に演算していたと思われる定数の数式が、初回バイトコードコンパイル時に行われるように変わったようです。1035行目のコードは、エラー処理コードであり、わざと0除算を発生させて強制終了させるために書かれていたコードなのですが、これが新しい仕様では実行前に評価されてしまうため動かなくなっています。なので変数を0除算させるように書き換えることで対応できます。

いずれにせよ、公式な修正はそのうち出ると思われますが、今すぐどうにかしたいという方はこれで対処してみてください。