質問箱 No.67: USING R が効かないのは何故ですか?

  ◆ 質問箱 No.67 質問者: 藤原 良允  1997年12月 191号 P.19
      ◆ 質問箱 目次へ
No.67-1   USING R が効かないのは何故ですか? 回答者
  入川 精二
1998年01月
192号 P.28
 ◆ No.67(1997年 12月号)の回答-01
  4Gで次の <INP> プログラムを作って確認しました。

          1 <INP>
          2       DISP OPEN;
          3       DISP [21,11] ";訂正しますか? [   ]";;
          4       INPUT [38,11] V30 USING R;
          5       IF V30=";Y"; THEN GOTO YY ELSE GOTO NN;
          6 $YY:  DISP [21,13] ";'Y'が押された";,WAIT10;   STOP;
          7 $NN:  DISP [21,13] ";'N'が押された";,WAIT10;
          8       STOP;

  この場合、INPUT文は正常に動作していて、‘Y’‘N’以外は受け付けません。そして、必ず $YY か $NN へ進みます。
  ですから、藤原さんの場合も問題は INPUT文の‘USING R’にあるのではなくて、その後の記述に何か問題あり  と推定しました。そこでプログラムを追加して次のようなテストをしました。

          1 <INP>
          2       DISP OPEN;
          3       DISP [21,11] ";訂正しますか? [   ]";;
          4       INPUT [38,11] V30 USING R;
          5       IF V30=";Y"; THEN GOTO YY ELSE GOTO NN;
          6 $YY:  DISP [21,13] ";'Y'が押された";,WAIT10;   STOP;
          7 $NN:  DISP [21,13] ";'N'が押された";,WAIT10;
          8       LET V29=";左";;       DISP [1,14] "CHK1",WAIT5;
          9       LET X3=1;              DISP [1,15] ";CHK2";,WAIT5;
         10       PRT;9121415C;       DISP [1,16] ";CHK4";,WAIT5;
         11       G;FMT/1;               DISP [1,17] ";CHK4";,WAIT5;
         12    STOP;

  9行目の‘CHK2’の表示までは順調に実行できますが、その直後に“ピッ”と鳴ります。‘PRT;9121415C;’に問題があります。プリンターのスイッチが入っていないと“ピッ”です。スイッチオンなら問題なく先に進みます。
  一見 INPUT文に問題があるようですが、実は別なところに落し穴がある  という例です。これを見つけるにはちょっと工夫が必要です。
  The PIPSなら [SS]+[F2] または [Alt]+[F2] でステップオンモードになりますが、4Gでは上のように書くしかありません。問題のありそうなところの前後を1ステップずつ [RETURN] を押しながら、かつ注意深く観察しながら進めると、多くの場合問題点が明確になります。
  私もしょっちゅうこんなことをやっています。

戻る