2023年09月05日
バグ発見
Laboratoryテーマ22「文字列中の数字を数値に変換したい」のロジック中にバグを発見しました。
DEレジスタに、文字列中の数字部分の先頭アドレスを代入しコールするとAレジスタに数値として取り出せるサブルーチンです。
単体での動作は問題ありません。
問題はスクリプト内のコマンドに記述された数字を連続で読みだす際、その中に3桁の数字があるとエラーとなります。
なぜかと言うと、仕様では数値変換終えた後、DEレジスタは文字列中の数字の最後尾アドレスを指しているはずが、プログラミングミスで先頭アドレスのままとなっていました。
そこから読み込もうとする時、2つアドレスを進めたところから読み始めるので、2桁なら数字から抜けたところスタートなのでよかったのですが、3桁だと1の位スタートになるのでエラーとなります。
2023年9月1日の記事、Laboratoryテーマ22「文字列中の数字を数値に変換したい」と、
そのロジックを内包する、2023年8月29日の記事、Laboratoryテーマ21「指定座標に指定サイズのメッセージウィンドウを開きたい」その@を改訂しました。
サンプルプログラムの再ダウンロードをお願いします。
ご迷惑おかけし申し訳ありません。
ロジックが複雑なサンプルが多くなるのでバグが増えそうです…。