99Basicインタプリタ(手引き書) サポート外の命令/関数

★ サポート外の命令/関数
   変数のピリオド  変数としての禁止文字2.  ON HELP 
   CSRLIN / POS  ROLL 199 


スキーで騎馬武者

◇ 変数内の.(ピリオド)

160 N=30: DIM JOB$(N),COME.MAIN$(N),FJ$(N), PRG.MAIN$(N),J$(N), E$(N) ' PRG.TAX$(10) , COME.TAX1$(10) , COME.TAX2$(10)
 → 変数のa.1$ G.GENKIN=1などのピリオドはエラー。その代わりに、a_1$ などのアンダーバーは使える。
5425 CS=CSRLIN: GOSUB 3000: LOCATE 0,CS ' タイトル 項目の表示
560 PRINT "": PRINT "": PRINT "": BEEP: LOCATE 0,CSRLIN-2
1210 IF I MOD 20=1 THEN CS=CSRLIN: LOCATE 1,0: COLOR 6: PRINT "基本data(00Work-F.txt)を作成中": LOCATE 40,0: COLOR 5: PRINT YY$; "年度 "; DR$ ;: PRINT USING "#,###/#,###";I;B3: COLOR 7: LOCATE 0,CS
透明スペーサー
 変数のa.1$ G.GENKIN=1などのピリオドはエラー。

◇解決策
 その代わり、a_1$ などのアンダーバーは使えます。
 a_1$、H_01$(5)、G_GENKINなどなどと変更します。

Top  99Menu


◇ 変数としての禁止文字2.

 コマンドや関数として予約されている文字列を変数としては使えません。
 例えば、
 PRINT=10 : INPUT=AB*20 : ASC=ASC +1
 これはDOS-N88BASIC、N88互換BASIC、99Basicすべて共通です。なお99Basicでは、たいがいは「文法どおりに記述されていない」のエラーのようです。
透明スペーサー
 なお、
 PRINT0=10 : INPUT1=AB*20 : ASC2=ASC2 +1
 PRINT_0=10 : INPUT_1=AB*20 : ASC_2=ASC_2 +1
 このように他の文字列と組み合わせることで、エラー無しに変数として使うことが出来ます。
透明スペーサー
 但し99Basicでは、
 AS と AS( ) は「文法どおりに記述されていない」のエラーになり、使えません。当然ですが配列宣言で DIM AS( )も同様です。

◇解決策
 例えば、
 ASS  AS1  A_S
 ASS( )  AS1( )  A_S( )
 などとすれば、エラーから逃げることが出来ます。

Top  99Menu


◇ ON HELP

265 ' ON HELP GOSUB *ONHELP: HELP ON ' 8500
Syntax error 文法どおりに記述されていない
 ON HELP はサポート外のコマンド
透明スペーサー
 但し ON ** としてサポートしているものもあります。詳しくは99Basic本体のヘルプを参照ください。
透明スペーサー
 その一部については、当HPでも多少は説明しています。

Top  99Menu


◇ CSRLIN
 ◇ POS( )

560 PRINT "": PRINT "": PRINT "": BEEP: LOCATE 0,CSRLIN-2
 上記はDOS-N88BASICやN88互換BASICでは、カーソル行位置を2行上に移動せよ、という内容です。
 しかし、CSRLINは99Basicではサポート関数ではないので、ただの変数と見なして、CSRLIN-2= 0 -2= -2。  即ち、LOCATE 0,-2という命令に成ってしまい
Illegal function call (関数/命令に与える数値/文字列の誤り) のエラー。
透明スペーサー
 その代わりに、XLOC / YLOCが用意されています。
XLOC / YLOC を参照ください。

Top  99Menu


◇ ROLL 199

 これは99Basicでは、用意されていないコマンドで、「文法どおりに書かれていない」の文法エラーになります。CLS 2 に書き換えが必要になります。
透明スペーサー
 DOS-N88BASICでは、グラフィック画面を199ドット?上にロールさせる、というようなコマンドです。実質的には、グラフィック画面をクリアーにさせるCLS 2と同じ役目で使っていました。
透明スペーサー
 width 80,25の状態では、画面を半分上にスクロールさせます。仮に画面の上半分にA、下半分にBが表示されている場合、ROLL 199をを使うと上半分にBが表示され、下半分はクリアーになります。ROLL 398なら1画面全体が上に押し上げられて、画面から消えます。
 DOS-N88BASIの場合は、これがグラフィック画面だけに働き、テキスト画面の表示は代わりません。
透明スペーサー
 N88互換BASICの場合は、テキスト画面を持たずに、すべてをテキストグラフィック画面に表示しているので、画面全体に対して働きます。結果的に CLSも CLS 2も、ROLL 398同じ働きをします。エラーにはなりません。

Top  99Menu