2019年02月05日
川俣晶の縁側ヴィンテージ・パソコン total 1522 count

N88-BASICのダイレクトモードでerror 2のあとでerrの値が0になる問題

Written By: 川俣 晶連絡先

問題 §

 通常、N88-BASICでerrorステートメントを実行するとエラー発生をシミュレートし、引数の値がerrに格納される。

 ところが、ダイレクトモードでerror 2のあとでerrの値が2にならず、0になる現象が発生する。

error 2

条件 §

 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マニアの熱意に期待する。