2015年7月15日水曜日

X-BASIC for iOS V2.96のバグ

X-BASIC for iOS V2.96までで発見されたバグは、以下の通りです。
  1. E付き浮動小数点数数字をstr$()すると落ちることがある
  2. 文字列用usingの中に'.'があるとエラーが発生するか落ちる
  3. 文字列長が設定値−1文字までしか設定できない
  4. 長めの文字列にコード変換系関数を使った時、落ちることがある
  5. スプライトのパターン0を定義した時、画面左上に表示されてしまう(消せない)
  6. テキスト画面で属性付き表示をすると描画カスが残ることがある
  7. YES/NOを引数にする関数が、正しい値を受け取れてなかった(誤動作した)
  8. YES/NOをリターン値にする関数が、正しい値を返してなかった
  9. 実行時に0除算すると落ちる
  10. using "〜"の後ろに:なしに// または /*でコメントを記述した時usingフォーマットエラーになる
  11. 変数名がenum定数と同名の時にもエラーが発生しない
  12. 正のfloat値をprintした時、数値の前にスペースが入らない
  13. wait()中にBreakすると、次回RUN以後wait()がすぐ帰ってくるようになる 
  14. motionGetRotation()/compassGetData()が正しい値を引数の変数に返さない
  15. loadFromURL()でエラーが発生時の処理がおかしい
  16. エディタで行番号とソースがずれる
  17. iOS8でアクションシート表示中に設定を押すと、以後一切の操作ができなくなってしまう
  18. 「編集」「リスト」切り替えすると、ソースコードの最後に空行が+1行されてしまう
  19. 編集中のプログラムをリストから削除して、再起動した時に「新規作成」と表示されない
  20. iOS8で、再起動時、前回選択していたソースを忘れることがある
  21. iOS8(iOS7でもなるかも)で外部キーボードモードの時、検索のキャンセルを押しても検索枠が消えない
  22. 同一グラフィックページに対するbitmapImgLoad()を短期間に呼び出すと、描画が遅れるまたは欠けることがある
最後の1つ以外はV3.00で解決されました。
最後の1つは高速描画の弊害なので、今のところ解決手段が見つかってません。

上記のバグのため動かないサンプルがありました。
 また、サンプル自体のバグも修正してあります。

・・・

V3.00では64ビット化に合わせてソース全体の見直しをしました(内部バッファー制御を一新しています)。またサンプルをもう一度全部実行しなおしていきました。SHARPのX-BASIC(/68) Ver2.0マニュアルも実家で発見したので、そこにあったサンプルも取り込みました。
その過程で多数のバグが発見されました。
すべてiOS版のみのバグです。

これで言語系のバグはほぼとれたのでは、と思います。まだ残ってましたのでV3.1で修正してます。

次バージョンではデバッグ系を強化したいと思ってます。
MZ-80K(SP-5030)レベルの簡易MMLも実装したいんだけど、出来るかどうか。

追伸:
X1-BASICからの移植をしやすいようにもしようかな思ってますが、 実家にあったはずのマニュアルが見当たりません。
「不要なのであげてもいいよ」という方がいらっしゃればお知らせください (PDFでも可)。

0 件のコメント:

コメントを投稿