2019/04/18(木) [n年前の日記]
#1 [pc] KM-BASIC 0.8.1の不具合を見つけてしまったような気がする
KM-BASIC 0.8.1 の動作確認をしていたのだけど、もしかするとまた別の不具合を見つけてしまったのかもしれず。そのあたり、一応メモ。環境は、Windows10 x64 + MZ700WIN 0.56 + KM-BASIC 0.8.1。
症状としては、文字列型変数を使おうとするとエラーが出る模様。
前提として…。KM-BASIC は、変数名として、A〜Z の英文字を使えるようで。
しかし、KM-BASIC 0.8.1 で X$ 等を使うと、以下のようなエラーが出てしまう。
代入まではできているのかもしれないけれど、参照しようとするとエラーになる。また、ASC(X$) や LEN(X$) でもエラーが出ている。
ちなみに、KM-BASIC 0.6.8 では、そういった症状は出なかった。
気になって、KM-BASIC 0.8.0 でも確認してみたけれど、そちらも 0.8.1 と同様にエラーになった。
症状としては、文字列型変数を使おうとするとエラーが出る模様。
前提として…。KM-BASIC は、変数名として、A〜Z の英文字を使えるようで。
- 数値(整数)が入る場合は、A とか B とか X とか書く。
- 文字列型変数を使う時は A$ とか X$ とか書く。
A=10 PRINT A 10 X$="TEST" PRINT X$ TEST
しかし、KM-BASIC 0.8.1 で X$ 等を使うと、以下のようなエラーが出てしまう。
代入まではできているのかもしれないけれど、参照しようとするとエラーになる。また、ASC(X$) や LEN(X$) でもエラーが出ている。
ちなみに、KM-BASIC 0.6.8 では、そういった症状は出なかった。
気になって、KM-BASIC 0.8.0 でも確認してみたけれど、そちらも 0.8.1 と同様にエラーになった。
◎ 他の命令その他についても動作確認してみた。 :
もしかすると、他にも不具合があるのではと気になったので、KM-BASIC 0.8.1 上で色々試してみたり。
結果を先に書いておくと、X$(x) という記述と、SGN() の結果が怪しい感じだった。
以下、確認中のスクリーンショット。
関数をチェック。
STRNCMP()、VAL()、CHR$()、DEC$()、HEX$() は、おそらく問題無し。
ただし、X$(x) という書き方はエラーが出る。
ちなみに、0.6.8上ではエラーは出なかった。
演算子についても確認。
+、-、*、/、% は問題無し。比較演算子の、=、!=、<、>、<=、>= も問題無さそう。ビット演算子の AND、OR、XOR も大丈夫そう。
配列を示す DIM についても確認。
DIM も大丈夫そう。
SGN()、ABS()、NOT() についても確認。
ABS()、NOT() は大丈夫そうだけど、SGN() が気になる。ドキュメントには、-1,0,1 を返すとあるけれど、-1,0しか返さない。これは 0.6.8 も同じ結果になった。
ということで、文字列型変数絡みと SGN() が、なんだか気になるなと…。
結果を先に書いておくと、X$(x) という記述と、SGN() の結果が怪しい感じだった。
以下、確認中のスクリーンショット。
関数をチェック。
STRNCMP()、VAL()、CHR$()、DEC$()、HEX$() は、おそらく問題無し。
ただし、X$(x) という書き方はエラーが出る。
ちなみに、0.6.8上ではエラーは出なかった。
演算子についても確認。
+、-、*、/、% は問題無し。比較演算子の、=、!=、<、>、<=、>= も問題無さそう。ビット演算子の AND、OR、XOR も大丈夫そう。
配列を示す DIM についても確認。
DIM も大丈夫そう。
SGN()、ABS()、NOT() についても確認。
ABS()、NOT() は大丈夫そうだけど、SGN() が気になる。ドキュメントには、-1,0,1 を返すとあるけれど、-1,0しか返さない。これは 0.6.8 も同じ結果になった。
ということで、文字列型変数絡みと SGN() が、なんだか気になるなと…。
◎ 動作テスト用のプログラムを書けないものか。 :
LOADしてRUNすると結果が出てきて、各命令や機能が一通り正常に動作していることを確認できる、そんなプログラムを書けないものか…。
◎ 2019/04/24追記。 :
修正版 0.8.2 が公開された旨を作者様から連絡していただけました。ありがとうございます。
動作確認の記事を書いたので、一応メモしておきます。
_mieki256's diary - KM-BASIC 0.8.2の動作確認をしてみたり
動作確認の記事を書いたので、一応メモしておきます。
_mieki256's diary - KM-BASIC 0.8.2の動作確認をしてみたり
この記事へのツッコミ
[ ツッコミを読む(4) | ツッコむ ]
以上です。
KM-BASIC 0.8.2 をDLして動作確認してみたところ、
文字列型変数とSGN()の挙動がたしかに改善されてることを確認できました。
対応していただきありがとうございます。感謝します。
ただ、REM文を使うと、LIST結果が崩れる症状を見つけてしまいました…。
一応報告させていただきます。
小出しに見つけてしまって、なんというか…申し訳ありません…。
小出しでも、気づいた段階で言っていただける方がありがたいです。
見てみます。