問題 §
通常、N88-BASICでerrorステートメントを実行するとエラー発生をシミュレートし、引数の値がerrに格納される。
ところが、ダイレクトモードでerror 2のあとでerrの値が2にならず、0になる現象が発生する。
条件 §
N88-BASICのダイレクトモードのみでerr=0となる。
PC-8801mkIIMRと98DO+の88モード(V1S/V2)で検証。
問題が起きない場合 §
プログラム中のon error gotoでトラップした場合、またはリモートBASICで実行した場合はerr=2となる。
またN-BASIC及びN88-BASIC(86)でもerr=2となる。
問題が起きるのはあくまでN88-BASICのダイレクトモードのみである。
補足 §
この機能はプログラム中でerrをゼロクリアする手段としては使用できない。ダイレクトモードでのみ発生するためである。
ワークエリアのerrの値を格納しているアドレスにpokeすればゼロクリアできるが、98との互換性は失われる。
また、88/98のどちらでも使用できるノウハウとしても使用できない。
展望 §
全てのN88-BASICで同じように振る舞うか未検証である。特にN88-BASIC(V3)搭載機は1つも持っていないのではっきりしない。
また、N88-BASICの内部解析は一切行っていないので、なぜこのような振る舞いが起きるのか、その理由についても未検証である。
以上2点はN-BASIC研究という主題の範疇を超えるので、自分で行う予定は無い。88マニアの熱意に期待する。