N88-BASIC(86) エラーメッセージ一覧
出典
- N88-日本語BASIC(86)(Ver6.2) リファレンスマニュアル、日本電気株式会社、1991年発行
エラーメッセージとその対策
メッセージ名のカッコ内はエラーコードです。エラー発生時はERL関数からエラー発生行、ERR関数からエラーコードを取得できます。
Bad allocation table [69]
- 原因
- ディスク内部のFATが壊れている.
- 対策
- データを読み取ることができないので,ディスクを再フォーマットする.ただし,以前のファイルはすべて失われる.
または他のOSでフォーマットされたディスクであるので, BASICのディスクに換える.
Bad drive number [70]
- 原因
- LOAD,SAVE,KILL,OPENなどのファイル操作命令でドライブの指定がまちがっている.たとえばシステムにつながっていないドライブを指定したなど..
- 対策
- 正しいドライブを指定する.
Bad file name [56]
- 原因
- LOAD,SAVE,KILL,OPENなどのファイル操作命令で,ファイル名の指定がまちがっている.
- 対策
- 正しいファイル名を指定する.
Bad file number [52]
- 原因
- 同時オープンファイル数を超えるファイル番号を指定しようとした.
- 対策
- ファイル番号を小さくするか,同時オープンファイル数を増やす.
Bad telephone number [173]
- 原因
- 電話機番号として指定できない文字を指定している.
- 対策
- 正しい電話機番号を指定する.
Bad telephone set number [172]
- 原因
- 1, 2, 3以外の電話機番号を指定している.
- 対策
- 正しい電話機番号を指定する.
Bad track / sector [71]
- 原因
- DSKO$, DSKI$で,サーフェス番号, トラック番号,セクタ番号の指定が誤っている.
- 対策
- 正しいサーフェス番号, トラック番号,セクタ番号を指定する.
Can't continue [17]
- 原因
- STOP命令やCTRL+Cなどで実行を停止した場合,プログラムを書き換えたりすると, CONTによって実行を再開することができない.
- 対策
- CONTを使用したい場合は,実行の中断中にプログラムを書き換えではならない.実行中断のタイミングによっては,プログラムを書き換えたりしなくとも実行の再開ができなくなることもあるので注意.
Can't execute across mode [176]
- 原因
- 現在のモードでは実行できない命令/関数を実行しようとした.
- 対策
- 各モードで実行可能な命令/関数を実行するようにプログラムの流れを正す.
Communication I/O error [174]
- 原因
- 電話機の故障,電話機の初期設定不良,接続不良などにより電話機に対するコマンドレベルの入出力ができない.
- 対策
- 原因となる箇所を確認してみる.
Direct statement in file [57]
- 原因
- LOADでアスキー形式のプログラムファイルをロードするときに,ダイレクトステートメント(行番号のない行)が存在した.
- 対策
- プログラムファイルの行番号が何かの理由で破壊されているか,あるいは,指定ファイルがプログラムファイルではないデータファイルであると考えられるので,ファイルの内容を確認する.
Disk full [68]
- 原因
- SAVE,PRINT#, PUTなどのディスクに書き出す命令を実行したとき,ディスク上に空き領域がなかった
- 対策
- 不要なファイルを削除して,空き領域を確保する.
別のドライブ上のディスクを使用する.
同じドライブ上でディスクを差し替えて使用する.ただしこの方法は,ファイルがオープン状態のときには使えないので注意.
Disk I/O error [64]
- 原因
- ディスクとの入出力中にエラーが発生した.
- 対策
- 入出力を行おうとしたディスクがフォーマットされていないか,または物理的に破壊されていると考えられるので,ディスクの再フォーマットを行ってみる.
なお, 1MBタイプのフロッピィディスクのサーフェス0,トラック0を直接読み書きすることはできないので注意.
Disk offline [62]
- 原因
- LOAD, SAVE, KILL, OPENなどのファイル操作命令で,ディスクのセットされていないドライブに対して入出力を行おうとした.
- 対策
- ディスクを正しくドライブにセットする.
Division by Zero (/0) [11]
- 原因
- 0による除算,すなわちn/0(nは任意の数)や0^-1が実行されて,その結果得られた値がオーバーフローを起こした.
- 対策
- 除算が0にならないようにする.
Duplicate Definition [10]
- 原因
- 一度宣言した配列を二重定義しようとした.
DIMで宣言しないで配列を使った場合に,その配列を再定義しようとした. - 対策
- 別の配列名を使うか,あるいはERASEで古い配列を消去したとで再び同じ配列名で定義しなおす.
Duplicate label [50]
- 原因
- プログラム中に同じラベル名が2つ以上存在している.
- 対策
- ラベル名を変更して同一名のラベル名が存在しないようにする.
Feature not available [31]
- 原因
- 現在の状態では使用できない命令を実行しようとした.
- 対策
- その命令を実行するために必要なハードウェアなどを装備あるいは準備する.
FIELD overflow [33]
- 原因
- FIELDで,ランダムファイルのレコード長として合計256バイト以上の領域を指定した.
- 対策
- フィールドの合計長は255バイト以内にする.
File already exist [65]
- 原因
- NAMEによって新たに付けようとしたファイル名がすでに存在している.
- 対策
- 新しく付けるファイル名を変更するか,すでに存在しているファイルのファイル名を変更する.
File already open [54]
- 原因
- すでにオープンされているファイルに対して, OPEN, KILL, NAMEなどを行った.
- 対策
- CLOSEでいったんファイルを閉じる.
File not found [53]
- 原因
- LOAD, SAVE, KILL, NAMEなどのファイル操作命令で,指定したファイルが見つからない
- 対策
- 正しいドライブ名およびファイル名を指定する.
File not open [60]
- 原因
- PRINT#, INPUT#など,ファイル番号を指定して入出力を行う命令で,オープンされていないファイルを参照しようとした.
- 対策
- 入出力命令を実行する前に, OPENでファイルをオープンしておく.
File write protected [61]
- 原因
- 次のうちいずれかの書き込み禁止属性が付けられているファイルに,書き込みを行おうとした.
・SETによって,ファイルディスクリプタ,ドライブのディスク,ファイル番号に付けられたもの.
・フロッピィディスクに張られたシールによるもの. - 対策
- 書き込み禁止を解除する.
FOR without NEXT [26]
- 原因
- FOR-NEXTが正しく対応していない.
- 対策
- プログラムの流れをたどり, FOR-NEXTを正しく対応させる.
Illegal direct [12]
- 原因
- ダイレクトモードで使用できない命令をダイレクトモードで使った.
- 対策
- プログラムモード上で実行する.
Illegal function call [5]
- 原因
- 命令や関数の使い方がまちがっている.すなわち,引数がその関数の許容する範囲を超えたり,結果がその関数のとり得る範囲を超えたりしている.たとえば,次のような場合である.
・LOG関数で負や0の引数を指定した.
・SQR関数で負の引数を指定した.
・MID$, LEFT$, RIGHT$, STRING$, SPACE$, INSTR, ON-GOSUBなどにおいて,不適当な引数が用いられた.
・ほか - 対策
- 原因がさまざま考えられるので,各命令,関数の使い方をリファレンスで確認する.
Illegal operation [74]
- 原因
- スクロールウィンドウ内に表示データがいっぱいに詰まっている場合,またはスクロールウィンドウ内でキ一入力したデータがいっぱいに詰まっている場合に,スクロール開始行に対してインサートモードでキー入力した.
- 対策
- インサートモードを抜けてから,キー入力を行う.
Input past end [55]
- 原因
- INPUT#, GETなどのファイルからデータを読み込む命令で,ファイル中のすべてのデータを読み尽くしたあとに,さらに入力命令が実行された.
- 対策
- ファイル中のデータの数と,入力命令で読み込む数とを合わせる.
EOF, LOFなどの関数を使って,ファイルの終了を検出するようにする.
Line buffer overflow [23]
- 原因
- 1行で入力できる文字の範囲(255バイト)を超えて入力が行われた.
- 対策
- 1行の文字数を255バイト以内にする.
Line busy [175]
- 原因
- 電話の呼び出し相手が話し中である.
- 対策
- 電話をかけ直す.プログラムではエラー処理を行って,このエラーが出たらしばらく時間待ちし,改めてかけ直すというアルゴリズムに使うことができる.
Missing operand [22]
- 原因
- 命令中で,必要なパラメータが指定されていない.
- 対策
- 書式を確かめ,必要なパラメータを指定する.
NEXT without FOR [1]
- 原因
- FOR-NEXTが正しく対応していない.
- 対策
- プログラムの流れをたどり, FOR-NEXTを正しく対応させる.
No RESUME [19]
- 原因
- エラー処理ルーチンの終わりにRESUMEがなく,プログラムの実行が継続できない.
- 対策
- RESUME, END, ON ERROR GOTO 0のどれかで終らせるようにする.
Out of DATA [4]
- 原因
- DATA行中のデータが足りず, READで読むべきデータがない.
- 対策
- DATA行中のデータの数と, READで読み込む数とを合わせる.READとDATAの対応と, RESTOREが正しく使われているかどうかを確認する.
Out of memory [7]
- 原因
- 次のような理由により,メモリ容量が足りなくなった.
・プログラムが長すぎる.
・配列が大きすぎる.
・FOR-NEXT, GOSUBなどでネステイング(入れ子構造)が深くなりすぎて,スタックがいっぱいになった.
・ほか - 対策
- プログラム,配列を小さくする.ネスティングを浅くする.
FREを使ってフリーなメモリを調べてみて,メモリの空き容量が異常に少ない場合には,そのプログラムを実行する前に別のプログラム中で, BASICのプログラム領域を小さく設定したままにしている可能性がある.このようなときには, CLEARを実行して,BASICの使うメモリを大きくする.また,起動時にファイルバッファの容量を多く取っていることもあるので,再起動して同時オープンファイル数を必要最小限にする.
Out of octave [134]
- 原因
- 発生できる音階を超えて音を出そうとした.たとえば"09C+"や"01C-"を指定した場合など.
- 対策
- オクターブを設定する命令を正しく使う.
Out of string space [14]
- 原因
- 文字列の全体量が,使用できるメモリ容量を超えてしまった.
- 対策
- 文字列,配列文字列を小さくする.
Overflow (OV) [6]
- 原因
- 演算結果や入力された数値が,許される範囲を超えた.
- 対策
- データの型と,とる値の範囲が正しいかどうかを確認する.
Rename across disks [73]
- 原因
- 異なるドライブ上にあるファイルに対してNAMEを実行しようとした.
- 対策
- NAMEでは同じドライブ上のファイルを指定する.
Request denied [177]
- 原因
- 電話機に対してコマンドを送出しでも電話機からそのコマンドを否定された.
- 対策
- 使用可能な電話機を使用する.電話機を正しく設定する.電話機の電源をいったん切る.
RESUME without error [20]
- 原因
- エラー処理ルーチンでないところに, RESUMEがある.
- 対策
- ON ERROR GOTOで指定されたところ以外, たとえばメインルーチン内にRESUMEがあるとこのエラーが発生するので,メインルーチンの終わりには必ずENDを置くようにする.プログラムの流れを確認すること.
RETURN without GOSUB [3]
- 原因
- GOSUB-RETURNが正しく対応していない.
- 対策
- GOSUBで呼び出されたサブルーチン以外,たとえばメインルーチン内にRETURNがあるとこのエラーが発生するので,プログラムの流れに沿って, GOSUBとRETURNの対応を確認する.
RS-232C (2nd/3rd) board not ready [82]
- 原因
- RS-232C拡張ボードが実装されていないのに,電話機と標準以外のRS-232C回線をCMD LINE OPENで接続しようとした.
- 対策
- RS-232C拡張ボードを増設するか,標準のRS-232C回線を使用する.
Sequential I/O only [59]
- 原因
- シーケンシャル入出力以外の入出力命令を使用した.
MERGEでバイナリファイルを指定した. - 対策
- シーケンシャル入出力命令を使用するようにする.
MERGEでディスクから読み込むファイルは,アスキー形式でセーブしておく.
Sound buffer not allocated [133]
- 原因
- サウンドバッファの確保をしないで,サウンド制御命令を使用した.
- 対策
- PLAY ALLOCで十分なサウンドバッファを確保する.
Sound buffer overflow [132]
- 原因
- サウンドバッファ領域が足りない.
- 対策
- PLAY ALLOCで十分なサウンドパッファを確保する.
String formula too complex [16]
- 原因
- 文字式が複雑すぎる.
- 対策
- 複雑な文字式は,いくつかの式に分ける.
String too long [15]
- 原因
- 1つの文字変数内の文字数が255バイトを超えている.
- 対策
- 2つの変数に分けて処理する.
Subscript out of range [9]
- 原因
- 配列変数の添字の値がDIMおよびOPTION BASEで指定されたときの範囲を外れている.
DIMによる宣言を省略した場合に,添字の値が10を超えている. - 対策
- 配列変数の定義による添字の範囲と引用する配列変数の範囲を確認する.
Syntax error [2]
- 原因
- 命令が書式どおりになっていない.
予約語以外の命令がある.
READとDATAとの対応で,読み込む変数とデータとの間で型の不一致が生じた. - 対策
- 各命令を書式どおり正しく記述する.
READとDATAでは,読み込む変数とデータの型を合わせる.
Telephone set already open [171]
- 原因
- すでにBASICと接続している電話機に対してCMD LINE OPENを実行した.
- 対策
- CMD LINE CLOSEでいったん電話機を切り離す.
Telephone set not open [170]
- 原因
- 電話機とBASICが論理的に接続されていない.
- 対策
- 初期モード以外で実行される電話制御命令を実行する前には, CMD LINE OPENを実行しておく.
Type mismatch [13]
- 原因
- 式の左辺,右辺,関数の引数などにおいて,変数の型が一致していない.
- 対策
- 関数に与えるデータの型を確認する.
Undefined label [32]
- 原因
- 定義されていないラベル名を参照した.
- 対策
- ラベル名を正しく定義する.
Undefined line number [8]
- 原因
- GOTO, GOSUB, IF-THEN-ELSE などで,存在しない行番号を飛び先に指定した.
- 対策
- 行番号を確認する.
Undefined user function [18]
- 原因
- 定義されていない利用者定義関数,または機械語関数を引用した.
- 対策
- 利用者定義関数は,引用する前にDEF FNで定義する.機械語関数は, DEF USRで実行開始アドレスを定義しておく.
Unprintable error [21, 24, 25, 28, 他]
- 原因
- メッセージの定義されていないエラー.
- 対策
- ERROR 〈整数表記〉を実行してこのエラーが生ずる場合,その〈整数表記〉番のエラーを利用者独自のエラー処理に利用することができる.
WEND without WHILE [30]
- 原因
- WHILE-WEND が正しく対応していない.
- 対策
- プログラムの流れをたどり, WHILE-WEND を正しく対応させる.
WHILE without WEND [29]
- 原因
- WHILE-WEND が正しく対応していない.
- 対策
- プログラムの流れをたどり, WHILE-WEND を正しく対応させる.