LEVEL-3 BASIC
概要(一部)
定数
-
文字定数は、"(ダブルクオート)で括る。
例: PRINT "ABCDE"
-
整数型定数は-32768~32767。数値末尾に%をつけて整数型と明示できる。
例: PRINT 123% : PRINT -4567
-
単精度型定数は有効桁数7桁、数値末尾に!をつけて単精度と明示できる。浮動小数点形式ではEを用いる。範囲は絶対値で約3.0E-39~1.7E+38
例: PRINT 123! : PRINT -4.56 : PRINT 7.89E+8
-
倍精度型定数は有効桁数8~16桁、数値末尾に#をつけて倍精度と明示できる。浮動小数点形式ではDを用いる。範囲は絶対値で約3.0D-39~1.7D+38
例: PRINT 123# : PRINT -4.56789012345 : PRINT 7.89D+8
変数
- 変数名は、先頭が英字、続く英数字、末尾に属性文字(省略可)。
- 変数名の長さは最大255文字。ただし区別は最初の16文字と属性文字で行う。
- 変数名の最初に予約語は使用できない。
- 変数の内容は、CLEAR、RUN、NEW、NEWONの各命令を実行した時、プログラムを変更した時にクリアされる。
属性文字 | 変数の型 | メモリ上のデータサイズ | |
---|---|---|---|
数値変数 | % | 整数型(Integer) | 2バイト(bytes) |
! | 単精度型(Single Float) | 4バイト(bytes) | |
# | 倍精度型(Double Float) | 8バイト(bytes) | |
文字変数 | $ | 文字列型(String) | 最大255バイト(bytes) |
省略時 | 単精度型 ただし、DEFINT/SNG/DBL/STRで指定した英字で始まる場合は、 それぞれ宣言した型になる。 |
配列変数は変数名の後に()を使って添字を指定する。配列変数の宣言はDIM文で行う。
ファイルディスクリプタ(File Descriptors)
装置名 | デバイス名 | I/O | 備考 |
---|---|---|---|
キーボード(Keyboard) | KYBD: | I | |
スクリーン(Screen) | SCRN: | O | |
プリンター(Printer) | LPT0: | O | |
LPT1: | O | ||
LPT2: | O | ||
RS-232C | COM0: | I/O |
オプションとして以下の指定ができる。 F/S ... クロック(Clock)(F:1/16 S:1/64) 例: COM0:(S8N2) |
COM1: | I/O | ||
COM2: | I/O | ||
COM3: | I/O | ||
COM4: | I/O | ||
カセット(Cassette) | CAS0: | I/O | ROM BASIC時のデフォルトデバイス(Default device at ROM BASIC) |
フロッピー(Floppy) | 0: | I/O | DISK BASIC時のデフォルトデバイス(Default device at DISK BASIC) |
1: | I/O | ||
2: | I/O | ||
3: | I/O |
演算子の優先順位(Operator Precedence)
機械語とBASIC (Machine code and BASIC)
命令一覧
*
機能
乗算、除算(実数)
例
A! = 2 * 3 → 6
B! = 5 / 2 → 2.5
B! = 5 / 2 → 2.5
機能
(1)符号
(2)加算、減算
(2)加算、減算
例
(1) -1234
(2) A = 1 + 2
(2) A = 1 + 2
機能
小さい
解説
右辺より左辺が小さければ真(-1)
例
IF A < B THEN ...
機能
等しいか小さい
解説
右辺より左辺が等しいか小さければ真(-1)
例
IF A <= B THEN ...
機能
等しくない
解説
右辺と左辺が等しくなければ真(-1)
例
IF A <> B THEN ...
機能
(1)等しい
(2)代入
(2)代入
解説
(1) 右辺と左辺が等しければ真(-1)
例
(1) IF A = B THEN ...
(2) A = 1234
(2) A = 1234
関連
LET文
機能
大きい
解説
右辺より左辺が大きければ真(-1)
例
IF A > B THEN ...
機能
等しいか大きい
解説
右辺より左辺が等しいか大きければ真(-1)
例
IF A >= B THEN ...
機能
整数の除算
例
A = 5 \ 2 → 2
機能
べき乗
例
A = 2 ^ 4 → 16
A
機能
絶対値を返す。
書式
ABS(<引数>)
関連
SGN関数
機能
論理積
解説
(1)左辺かつ右辺が真なら真(-1)
(2)左辺かつ右辺のビットが1ならそのビットが1となる。
(2)左辺かつ右辺のビットが1ならそのビットが1となる。
例
(1)IF A >= 0 AND A <= 100 THEN ...
(2)23 AND 15 → 7
(2)23 AND 15 → 7
関連
機能
キャラクターコードを返す。
書式
ASC(<文字式>)
関連
CHR$関数
機能
逆正接を返す。
書式
ATN(<引数>)
解説
引数はラジアン(-π/2 ~ π/2)
関連
TAN関数
機能
行番号を自動的に出力する。
書式
AUTO [<開始行番号>][,<増分>]
B
機能
内蔵スピーカから音を出す。
書式
BEEP [<数値>]
解説
数値は意味を成さない。
C
機能
倍精度型に変換する。
書式
CDBL(<引数>)
関連
機能
キャラクターコードに対応した文字を返す。
書式
CHR$(<引数>)
関連
ASC関数
機能
整数型に変換する。小数部分は四捨五入する。
書式
CINT(<引数>)
関連
機能
変数値をクリアし、文字領域の大きさとBASICで使用するメモリの上限を設定。
書式
CLEAR [<文字領域の大きさ>[,<BASICで使用するメモリの上限番地>]]
解説
<文字領域の大きさ> ... 初期値 300
<BASICで使用するメモリの上限番地> ... 初期値 &H7FFF
<BASICで使用するメモリの上限番地> ... 初期値 &H7FFF
機能
ファイルを閉じる。
書式
CLOSE [[#]<ファイル番号>[,[#]<ファイル番号>...]]
関連
機能
画面を消去しカーソルをホーム位置に移動する。
書式
CLS
機能
文字色と背景色を指定する。
書式
COLOR [<文字色>][,<背景色>] (省略形はCOL.)
解説
<文字色> ... 0~15
<背景色> ... 0~7
<背景色> ... 0~7
機能
コミュニケーションポートからの割り込みを許可/禁止/停止する。
書式
COM(<ポート番号>) { ON | OFF | STOP }
解説
<ポート番号> ... 0 (1~4:拡張ボードがある場合)
関連
機能
スクロール範囲を指定する。
書式
CONSOLE <開始行>,<行数>[,<PFキー表示>] (省略形はCONS.)
解説
<開始行> ... 0~24 スクロールを開始する行。
<行数> ... 1~25 スクロール行数。
<PFキー表示> ... 0:表示しない 1:表示する 省略時現在の状態を維持する。
<行数> ... 1~25 スクロール行数。
<PFキー表示> ... 0:表示しない 1:表示する 省略時現在の状態を維持する。
注意
3つのパラメータの合計は25以下であること。
関連
機能
中断したプログラムの実行を開始する。
書式
CONT (省略形はC.)
関連
機能
余弦を返す。
書式
COS(<引数>)
解説
引数はラジアン(-π/2 ~ π/2)
関連
機能
単精度型に変換する。
書式
CSNG(<引数>)
関連
機能
画面上のカーソルの垂直位置を返す。
書式
CSRLIN
関連
機能
ランダムアクセス用の数値文字列を数値に変換する。
書式
CVD(<8バイト文字列>) , CVI(<2バイト文字列>) , CVS(<4バイト文字列>)
解説
整数型...CVI, 単精度型...CVS, 倍精度型...CVDを使用する。
関連
D
機能
READ文で使用するデータを定義する。
書式
DATA <定数>[,<定数>...]
解説
定数にカンマ、コロン、スペースを含む場合「"」で囲む。
注意
行番号のあとにスペースを2つ以上入れるとこの行のDATA文は無視される。
関連
機能
内蔵クロックの日数を返す。
書式
DATE
関連
TIME関数
機能
(1)内蔵クロックの日付を返す。/ (2)日付を設定する。
書式
(1) DATE$
(2) DATE$ = "YY/MM/DD"
(2) DATE$ = "YY/MM/DD"
関連
TIME$システム変数
機能
ユーザ関数を定義する。
書式
DEF FN<名前>[(<仮引数>[,<仮引数>...])]=<関数の定義式>
解説
<名前>は変数名と同じ命名規則に従う。
関連
FN関数
機能
変数名の型宣言を行う。
書式
DEF<形> <変数名の頭文字の範囲>
解説
<形> ... INT:整数形, SNG:単精度形, DBL:倍精度形, STR:文字形
<変数名の頭文字の範囲> ... カンマあるいはハイフンで指定。
型宣言をしても変数の属性を優先する。
※属性 ... 「%」:整数形 「!」:単精度形 「#」:倍精度形 「$」:文字形
<変数名の頭文字の範囲> ... カンマあるいはハイフンで指定。
型宣言をしても変数の属性を優先する。
※属性 ... 「%」:整数形 「!」:単精度形 「#」:倍精度形 「$」:文字形
機能
機械語サブルーチンの開始番地を定義する。
書式
DEF USR<番号>=<開始番地>
解説
<番号>は0~9の計10個登録できる。省略すると番号0として処理する。
関連
USR関数
機能
指定行を消去する。
書式
DELETE [<開始行番号>][{-|,}[<終了行番号>]]
DELETE {-|,} <終了行番号>
DELETE {-|,} <終了行番号>
機能
ファイルデスクリプタ省略時などデフォルトで使用するドライブを指定する。
書式
DEVICE "<ファイルデスクリプタ>"
機能
配列変数の最大値を指定し、メモリ領域を割り当てる。
書式
DIM <配列変数名>(<添字の最大値>[,<添字の最大値>...])[,<配列変数名>...]
機能
ディスクの空きエリアを返す。単位はグループ(クラスタ)となる。
書式
DSKF( <ドライブ番号> )
機能
ディスクの指定したセクタの内容を文字列で得る。
書式
DSKI$ <ドライブ番号>, <トラック番号>, <セクタ番号>, <文字列変数名1> [, <文字列変数名2>]
解説
文字列変数には128バイトのデータが入る。
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 32
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 32
関連
機能
ディスクの指定したセクタの内容を文字列で得る。
書式
DSKI$(<ドライブ番号>, <トラック番号>, <セクタ番号>)
解説
文字列変数には128バイトのデータが入る。
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 16
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 16
関連
機能
ディスクのファイル管理エリアを初期化する。
書式
DSKINI <ドライブ番号>
注意
ディスクはあらかじめユーティリティにてフォーマットをしておくこと。
機能
ディスクの指定したセクタに文字式の内容を書き込む。
書式
DSKO$ <ドライブ番号>, <トラック番号>, <セクタ番号>, <文字式1> [, <文字式2>]
解説
文字式には128バイトのデータを入れる。
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 32
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 32
関連
機能
ディスクの指定したセクタに文字式の内容を書き込む。
書式
DSKO$ <ドライブ番号>, <トラック番号>, <セクタ番号>, <文字式>
解説
文字式には128バイトのデータを入れる。
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 16
<ドライブ番号> ... 0 ~ 3
<トラック番号> ... 0 ~ 39
<セクタ番号> ... 1 ~ 16
関連
DSKI$関数
E
機能
指定した1行を表示しカーソルをステートメントの先頭に移動する。
書式
EDIT <行番号>
機能
プログラムの実行を終了する。
書式
END
機能
ファイル終端であるかを返す。
書式
EOF(<ファイル番号>)
解説
ファイル終端(EOF)を検出すると-1を返す。
機能
同値
解説
左辺と右辺のビットが同値の場合にそのビットが1となる。
例
16 EQV 6 → -23
関連
機能
エラーが発生した行番号を返す。
書式
ERL
機能
発生したエラーのエラーコードを返す。
書式
ERR
機能
エラー発生をエミュレートする。
書式
ERROR <エラーコード>
関連
ERR関数
機能
機械語プログラムを実行する。
書式
EXEC [<機械語プログラムの開始番地>]
機能
e(自然対数)のべき乗を返す。
書式
EXP(<引数>)
関連
LOG関数
F
機能
ランダムアクセス用のレコードのフィールド定義。
書式
FIELD [#]<ファイル番号>, <フィールド長> AS <文字変数名> [, <フィールド長> AS <文字変数名> ... ]
注意
3インチ版: フィールド長の合計は128バイトまで
5インチ版: フィールド長の合計はOPEN文で指定した値まで。
5インチ版: フィールド長の合計はOPEN文で指定した値まで。
関連
機能
ディスクやカセットテープ上のファイル名一覧を表示する。
書式
FILES ["<ファイルディスクリプタ>"]
注意
終了する場合は CTRL+D を入力しCLOSEコマンドを実行する。
関連
機能
整数部を返す。
書式
FIX(<引数>)
例
FIX(3.14) → 3, FIX(-3.14) → -3
関連
機能
ユーザ関数を実行し結果を返す。
書式
FN<名前>[ ( <引数> [, <引数> ] ) ]
解説
DEF FN文で定義したユーザ関数を実行する。
関連
機能
繰り返し実行。
書式
FOR <変数名>=<初期値> TO <終値>[ STEP <増分>]
:
NEXT[ <変数名>[,<変数名>...]]
:
NEXT[ <変数名>[,<変数名>...]]
機能
メモリまたは文字領域の未使用領域を返す。
書式
FRE(<引数>)
解説
引数が数式ならメモリの、文字式なら文字領域の未使用領域の大きさを返す。
G
機能
ランダムアクセスファイルからレコードを読み込む。
書式
GET [#]<ファイル番号> [, <レコード番号> ]
解説
データはFIELD文にて指定した変数に格納される。レコード番号を省略するとLOC関数の値が使用される。
関連
機能
指定した行番号のサブルーチンへ分岐し、実行後指定した行番号に復帰する。
書式
GOSUB <行番号> (省略形はGOS.)
:
RETURN [<行番号>] (省略形はRET.)
:
RETURN [<行番号>] (省略形はRET.)
機能
指定した行番号へ無条件に分岐する。
書式
GOTO <行番号> (省略形はGO.)
H
機能
数値の16進数を文字列で返す。
書式
HEX$(<数値>)
解説
数値は0~65535
関連
OCT$関数
I
機能
条件分岐。
書式
IF <論理式> THEN {<文>|<行番号>} [ELSE {<文>|<行番号>}]
IF<論理式> GOTO <行番号> [ELSE {<文>|<行番号>}]
IF<論理式> GOTO <行番号> [ELSE {<文>|<行番号>}]
機能
包含
解説
左辺のビットが1、右辺のビットが0の場合にそのビットが0となる。
例
12 IMP 5 → -9
関連
機能
キーボードバッファより1文字を返す。
書式
INKEY$
解説
キーが押されていればその文字を、キーが押されていなければヌルストリングを返す。
機能
キーボードより入力する。
書式
INPUT ["<プロンプト文>"{;|,}] <変数名>[,<変数名...>]
関連
機能
入力ファイルからデータを読む。
書式
INPUT #<ファイル番号>,<変数名>[,<変数名...>]
解説
"I"でOPENしたファイルからデータを読み変数に代入する。
関連
LINE INPUT #文, OPEN文
機能
キーボード/入力ファイルより文字列を取得しそれを返す。
書式
INPUT$(<文字数> [, [#]<ファイル番号>])
解説
指定した文字数分の文字列を返す。
機能
時間制限付きでキーボードより入力する。
書式
INPUT WAIT <行番号>;<待ち時間(秒)>,["<プロンプト文>"{;|,}] <変数名>[,<変数名...>]
解説
待ち時間の間入力待ちを行う。時間内に入力が完了しない場合、行番号の行に制御が移る。
機能
一致する文字列を検索しその文字位置を返す。
書式
INSTR([<引数>,] <文字式1>, <文字2> )
解説
文字式1の引数で指定した文字位置から文字2が一致する位置を返す。一致しない場合は0を返す。
機能
引数を超えない整数を返す。
書式
INT(<引数>)
例
INT(3.14) → 3, INT(-3.14) → -4
関連
K
機能
PFキーの内容を設定する。
書式
KEY <PFキー番号>, <文字式>
機能
PFキーの内容を表示する。
書式
KEY LIST
機能
番号nのPFキーの割り込みを許可/禁止/一時停止する。
書式
KEY (<PFキー番号>) {ON|OFF|STOP}
解説
KEY(n)ONにするとPFキーnが押されるたびにON KEY(n) GOSUBで指定した行番号に制御を移す。
関連
機能
ファイルを削除する。
書式
KILL <ファイル名>
L
機能
文字列の左部分を返す。
書式
LEFT$(<文字式>, <引数>)
解説
文字式の左側から引数で指定した文字数分の文字列を返す。
関連
機能
文字列の長さを返す。
書式
LEN(<文字式>)
機能
変数に値を代入する。
書式
[LET] <変数名>=<式>
解説
"LET"は省略できる。
機能
指定した2点間に線または四角形を描く。
書式
(1) LINE[@][(<始点位置>)]-(<終点位置>),<機能>[,<色コード>][,<オプション>]
(2)LINE[@][(<始点位置>)]-(<終点位置>),<文字式>[,<色コード>][,<オプション>]
(2)LINE[@][(<始点位置>)]-(<終点位置>),<文字式>[,<色コード>][,<オプション>]
解説
(1)グラフィックで線または四角形を描く。
<始点位置><終点位置>は座標(0,0)~(639,199)を指定。
<機能>...「PSET」で線を描く。「PRESET」で線を消す。
<色コード>...0~15
<オプション>... 「B」を指定すると四角形、「BF」で四角形の塗りつぶし。
(2)指定した文字で線または四角形を描く。
<始点位置><終点位置>は座標(0,0)~(79,24)を指定。
<文字式>...一文字
<色コード>...0~15
<オプション>... 「B」を指定すると四角形、「BF」で四角形の塗りつぶし。
<始点位置><終点位置>は座標(0,0)~(639,199)を指定。
<機能>...「PSET」で線を描く。「PRESET」で線を消す。
<色コード>...0~15
<オプション>... 「B」を指定すると四角形、「BF」で四角形の塗りつぶし。
(2)指定した文字で線または四角形を描く。
<始点位置><終点位置>は座標(0,0)~(79,24)を指定。
<文字式>...一文字
<色コード>...0~15
<オプション>... 「B」を指定すると四角形、「BF」で四角形の塗りつぶし。
関連
機能
1行を区切ることなく文字変数に入力する。
書式
LINE INPUT ["<プロンプト文>"{;|,}] <変数名>
解説
RETURNキーが入力されるまで変数に代入する。
関連
機能
入力ファイルから1行分のデータを読む。
書式
LINE INPUT #<ファイル番号>,<変数名>[,<変数名...>]
解説
"I"でOPENしたファイルから改行までのデータを読み変数に代入する。
関連
機能
プログラムを指定先に出力する。
書式
LIST [<開始行番号>][{-|,}[<終了行番号>]] (省略形はL.)
LIST "<ファイルディスクリプタ>"[,[<開始行番号>][{-|,}[<終了行番号>]]]
LIST "<ファイルディスクリプタ>"[,[<開始行番号>][{-|,}[<終了行番号>]]]
機能
ディスクやカセットテープからプログラムを読み込む。
書式
LOAD ["[<ファイルディスクリプタ>][<ファイル名>]"[,R]] (省略形はLO.)
解説
R ... プログラムロード後ただちに実行を開始する。
関連
機能
カセットテープ上のファイルのチェックを行う。
書式
LOAD? ["[CAS0:][<ファイル名>]"] (省略形はLO.?)
注意
メモリ上のプログラムとの比較は行わない。
関連
機能
ディスクやカセットテープから機械語プログラムを読み込む。
書式
LOADM ["[<ファイルディスクリプタ>][<ファイル名>]"[,[<オフセット>][,R]]] (省略形はLO.M)
解説
<オフセット> ... 記録時の番地にオフセットを加えた番地にロードする。
R ... プログラムロード後直ちに実行を開始する。(開始番地はSAVEM時に指定した番地)
R ... プログラムロード後直ちに実行を開始する。(開始番地はSAVEM時に指定した番地)
関連
SAVEMコマンド
機能
ランダムアクセスファイルに最後にGET,PUTした次のレコード番号を返す。
書式
LOC(<ファイル番号>)
機能
カーソルの位置および機能を指定する。
書式
LOCATE <水平位置>,<垂直位置>[,<カーソルモード>] (省略形はLOC.)
解説
<カーソルモード> ... 0:カーソル表示点滅なし 1:カーソル非表示 2:カーソル表示倍速点滅 3:カーソル表示通常点滅
関連
CSRLIN関数
機能
入力バッファ内の文字数を返す。ランダムアクセスファイルの場合、最大レコード番号を返す。
書式
LOF(<ファイル番号>)
機能
自然対数を返す。
書式
LOG(<式>)
関連
EXP関数
機能
ランダムアクセスファイル用の変数にデータを左詰めで格納する。
書式
LSET <文字変数名> = <文字式>
解説
FIELD文にて指定した変数に格納する。右詰めの場合はRSET。数値はMKI$,MKS$,MKD$を用いて文字列に変換する。
関連
M
機能
メモリ上のプログラムにディスクやカセットテープからのプログラムを追加する。
書式
MERGE ["[<ファイルディスクリプタ>][<ファイル名>]"[,R]] (省略形はME.)
解説
R ... プログラムロード後ただちに実行を開始する。
注意
MERGEに使用するプログラムはキャラクタ形式でSAVEされたものでなければならない。
関連
SAVEコマンド
機能
文字変数の一部を置換する。
書式
MID$(<文字変数名>,<引数1>[,<引数2>])=<文字式>
解説
<文字変数名>の<引数1>文字目から<引数2>個の文字を<文字式>の内容で置き換える。
機能
文字列から一部を抜き出す。
書式
MID$(<文字式>,<引数1>[,<引数2>])
解説
<文字式>の内容の<引数1>文字目から<引数2>個の文字列を抜き出す。
関連
機能
数値を文字列データに変換する。
書式
MKD$(<引数>) , MKI$(<引数>) , MKS$(<引数>)
解説
整数型...MKI$, 単精度型...MKS$, 倍精度型...MKD$を使用する。
関連
機能
剰余(余り)
例
A = 10 MOD 3 → 1
機能
機械語モニタへ実行を移す。
書式
MON
解説
使用できるコマンド
D[<メモリ番地(16進数)>] ... メモリの内容を表示(64バイトごと)。
M[<メモリ番地(16進数)>] ... メモリの内容を編集。終了するには16進数以外を入力。
R ... レジスタの内容を変更。
G[<メモリ番地(16進数)>] ... プログラムの実行。
MONコマンドはBREAKキー、CTRL+C、CTRL+Dのいずれかで終了しBASICに戻る。
D[<メモリ番地(16進数)>] ... メモリの内容を表示(64バイトごと)。
M[<メモリ番地(16進数)>] ... メモリの内容を編集。終了するには16進数以外を入力。
R ... レジスタの内容を変更。
G[<メモリ番地(16進数)>] ... プログラムの実行。
MONコマンドはBREAKキー、CTRL+C、CTRL+Dのいずれかで終了しBASICに戻る。
機能
カセットテープレコーダーのモータを制御する。
書式
MOTOR [{ ON | OFF }]
関連
N
機能
ファイル名を変更する。
書式
NAME <旧ファイル名> AS <新ファイル名>
機能
メモリ上のプログラムを消去し変数をクリアする。
書式
NEW
機能
システムのモードを切り替え再起動する。
書式
NEW ON <式>
機能
否定
解説
(1)真と偽を入れ替える
(2)ビットの1と0を入れ替える
(2)ビットの1と0を入れ替える
例
(1)IF NOT A=0 THEN ... → IF A <> 0 THEN ...
(2)NOT 0 → -1
(2)NOT 0 → -1
関連
O
機能
数値の8進数を文字列で返す。
書式
OCT$(<数値>)
関連
HEX$関数
機能
COMポートからの割り込み発生時に実行するサブルーチンの開始行を設定する。
書式
ON COM(<ポート番号>) GOSUB <行番号>
関連
機能
エラー発生時に実行するエラー処理の開始行を設定する。
書式
ON ERROR GOTO<行番号>
解説
プログラム中にエラーが発生すると指定した行に制御を移す。行番号に0を指定するとエラー制御を解除する。エラーが発生した行の次から制御を戻すにはRESUME文を用いる。
関連
機能
PFキーの割り込み発生時に実行するサブルーチンの開始行を設定する。
書式
ON KEY(<PFキー番号>) GOSUB <行番号>
関連
機能
式の値により指定した行へ分岐する。
書式
ON <式> {GOTO|GOSUB} <行番号>[,<行番号>...]
解説
式の値(1,2,...)により指定した行に制御を移す。
機能
ライトペンの割り込み発生時に実行するサブルーチンの開始行を設定する。
書式
ON PEN GOSUB <未定義領域検知時の行番号>[,[<第1領域検知時の行番号>]...]
ON PEN GOSUB ,[<第1領域検知時の行番号>][,[<第n領域検知時の行番号>]...]
ON PEN GOSUB ,[<第1領域検知時の行番号>][,[<第n領域検知時の行番号>]...]
解説
PEN文で指定した領域でライトペンが検知すると指定した行へ制御を移す。
関連
機能
入出力ファイルを開きファイル番号に割り当てる。
書式
OPEN "<モード>",[#]<ファイル番号>,"<ファイルディスクリプタ>" [, <レコード長> ]
解説
<モード> ... I:入力 O:出力 R:ランダムアクセス(ディスクのみ)
レコード長の指定は5インチ版DISK BASICにてランダムアクセスを行う場合のみ有効。また、最大レコード長はユーティリティにて指定した値となる。
レコード長の指定は5インチ版DISK BASICにてランダムアクセスを行う場合のみ有効。また、最大レコード長はユーティリティにて指定した値となる。
関連
機能
論理和
解説
(1)左辺または右辺が真なら真(-1)
(2)左辺または右辺のビットが1ならそのビットが1となる。
(2)左辺または右辺のビットが1ならそのビットが1となる。
例
(1)IF A < 0 OR A > 100 THEN ...
(2)23 OR 15 → 31
(2)23 OR 15 → 31
関連
P
機能
指定した境界内を着色する。
書式
PAINT(<X座標>,<Y座標>),<色コード>[,<境界色コード>]
機能
メモリ番地の内容を返す。
書式
PEEK(<メモリ番地>)
機能
ライトペンの検知領域を設定する。
書式
PEN<番号>;[(領域開始座標)-(領域終了座標)][,<番号>;[(領域開始座標)-(領域終了座標)]...]
解説
番号は1~9までON PEN GOSUB文の行番号の順番と合わせる。座標はキャラクタ単位でX,Yの形式で指定する。座標を省略すると設定解除となる。
関連
機能
ライトペンの情報を返す。
書式
PEN(<引数>)
解説
引数に指定する値:
0 ... トリガセンス:ライトペンを押したら-1、押されていない場合0を返す。
1 ... トリガセンス:ライトペンを押した時の水平座標。
2 ... トリガセンス:ライトペンを押した時の垂直座標。
3 ... レベルセンス:ライトペンを押したら-1、押されていない場合0を返す。
4 ... レベルセンス:ライトペンを押した時の水平座標。
5 ... レベルセンス:ライトペンを押した時の垂直座標。
* トリガセンス:ライトペンを押した時の情報を返す。
* レベルセンス:関数呼び出し時のライトペンの状態を返す。
0 ... トリガセンス:ライトペンを押したら-1、押されていない場合0を返す。
1 ... トリガセンス:ライトペンを押した時の水平座標。
2 ... トリガセンス:ライトペンを押した時の垂直座標。
3 ... レベルセンス:ライトペンを押したら-1、押されていない場合0を返す。
4 ... レベルセンス:ライトペンを押した時の水平座標。
5 ... レベルセンス:ライトペンを押した時の垂直座標。
* トリガセンス:ライトペンを押した時の情報を返す。
* レベルセンス:関数呼び出し時のライトペンの状態を返す。
機能
ライトペンの割り込みを許可/禁止/一時停止する。
書式
PEN {ON|OFF|STOP}
解説
PEN ONにするとライトペンが反応するたびにON PEN GOSUBで指定した行番号に制御を移す。
関連
PEN文, ON PEN GOSUB文
機能
指定したグラフィック座標上に点があるかを調べる。
書式
POINT(<水平位置>,<垂直位置>)
機能
指定したメモリ番地にデータを書き込む。
書式
POKE <メモリ番地>,<データ>
機能
画面上のカーソルの水平位置、または出力ファイルの出力文字数を返す。
書式
POS(<引数>)
解説
引数に0を指定すると、画面上のカーソル位置を返す。
引数にファイル番号を指定すると、ファイルの出力文字数を返す。
引数にファイル番号を指定すると、ファイルの出力文字数を返す。
機能
指定した座標の点を消す。
書式
PRESET(<水平位置>,<垂直位置>)
関連
機能
ディスプレイに式の値を出力する。
書式
PRINT [<式>[{;|,|△}<式...>][{;|,}]] (省略形は?)
解説
式の間を「,」で区切ると14文字タブとなる。「;」「△(空白)」で区切ると連続して出力される。
機能
ファイルに値を出力する。
書式
PRINT #<ファイル番号> ...
PRINT #<ファイル番号>, USING ...
PRINT #<ファイル番号>, USING ...
解説
書式はPRINT, PRINT USINGに準ずる。
関連
OPEN文
機能
フォーマットに従って値を出力する。
書式
PRINT USING "<フォーマット>";<式>[{;|,}<式...>][{;|,}]
解説
フォーマットに用いる制御文字
! ... 一文字
&△△...△& ... &で挟まれた文字数分の文字列(△は空白)
###.## ... #で数値の桁数を指定する。 "."は小数点
+### -### ###- ... 数値の前あるいは後ろに符号をつける。
###, ... 3桁ごとにカンマを入れる。
**### ... アスタリスクでサプレス。
\\### ... 数値の前に円記号をつける。
**### ...アスタリスクでサプレスし数値の前に円記号をつける。
##.###^^^^ ... 浮動小数点の書式
! ... 一文字
&△△...△& ... &で挟まれた文字数分の文字列(△は空白)
###.## ... #で数値の桁数を指定する。 "."は小数点
+### -### ###- ... 数値の前あるいは後ろに符号をつける。
###, ... 3桁ごとにカンマを入れる。
**### ... アスタリスクでサプレス。
\\### ... 数値の前に円記号をつける。
**### ...アスタリスクでサプレスし数値の前に円記号をつける。
##.###^^^^ ... 浮動小数点の書式
関連
機能
指定した座標に点を描く。
書式
PSET(<水平位置>,<垂直位置>,<色コード>)
関連
機能
ランダムアクセスファイルのレコードに書き込む。
書式
PUT [#]<ファイル番号> [, <レコード番号> ]
解説
データはFIELD文にて指定した変数にLSET、RSET文で格納する。レコード番号を省略するとLOC関数の値が使用される。
関連
R
機能
乱数の系列(シード)を指定する。
書式
RANDOMIZE [ (<引数>) ] (省略形はRNDM.)
解説
引数は-32768~32767の範囲で数値を指定する。
機能
DATA文で定義されたデータを変数に読み込む。
書式
READ <変数名>[,<変数名>...]
関連
機能
プログラム中に注釈をつける。
書式
REM [ <文字列> ] (省略形は')
解説
REM文以降行末までの実行文は無視される。
機能
プログラムの行番号を付け直す。
書式
RENUM [ <新行番号> ][,[<旧行番号>][,<増分>]]
解説
旧行番号以降を新行番号に付け直す。新行番号、増分は省略すると10が適用される。
機能
DATA文からの読み込み開始行を指定する。
書式
RESTORE [<行番号>]
関連
機能
エラー処理ルーチンから復帰する。
書式
RESUME { [<行番号>] | NEXT }
解説
"NEXT"を指定するとエラーが発生した行の次の行に復帰する。
関連
機能
文字列の右部分を返す。
書式
RIGHT$(<文字式>, <引数>)
解説
文字式の左側から引数で指定した文字数分の文字列を返す。
関連
機能
乱数を発生させる。
書式
RND[ (<引数>) ]
解説
0より大きく、1より小さい乱数を発生させる。
引数を省略したり正の数を指定するとセットされている乱数系列から乱数を発生させる。
引数に0を指定すると、直前に発生させた乱数を返す。
引数に負の数を指定すると引数で決まる系列の乱数を発生させる。
引数を省略したり正の数を指定するとセットされている乱数系列から乱数を発生させる。
引数に0を指定すると、直前に発生させた乱数を返す。
引数に負の数を指定すると引数で決まる系列の乱数を発生させる。
関連
機能
ランダムアクセスファイル用の変数にデータを右詰めで格納する。
書式
RSET <文字変数名> = <文字式>
解説
FIELD文にて指定した変数に格納する。左詰めの場合はLSET。数値はMKI$,MKS$,MKD$を用いて文字列に変換する。
関連
機能
プログラムを(ロードし)実行する。
書式
(1) RUN [<行番号>] (省略形はR.)
(2)RUN "[<ファイルディスクリプタ>][<ファイル名>]"[,R]
(2)RUN "[<ファイルディスクリプタ>][<ファイル名>]"[,R]
解説
(1) 指定した行番号から実行する。
(2) 指定したファイルからプログラムをロードし直ちに実行する。
(2) 指定したファイルからプログラムをロードし直ちに実行する。
関連
LOADコマンド
S
機能
ディスクやカセットテープにプログラムを記録する。
書式
SAVE "[<ファイルディスクリプタ>]<ファイル名>"[,{A | P}] (省略形はSA.)
解説
A ... プログラムをキャラクタ形式で記録する。
P ... プロテクト。LOADしてもプログラムの閲覧編集ができなくなる。
P ... プロテクト。LOADしてもプログラムの閲覧編集ができなくなる。
関連
機能
ディスクやカセットテープに機械語プログラムを記録する。
書式
SAVEM "[<ファイルディスクリプタ>]<ファイル名>",<先頭番地>,<最終番地>,<開始番地> (省略形はSA.M)
関連
LOADMコマンド
機能
画面モードおよびページを指定する。
書式
SCREEN [<精細度モード>][,[<ページ番号>][,<インターレース>]]
解説
<精細度モード> ... 0:ノーマルモード 1:ハイレゾモード 省略時現在のモードを維持。
<ページ番号> ... 1~16 省略時1
<インターレース> ... 0:インターレース 1:ノンインターレース 省略時現在のモードを維持
<ページ番号> ... 1~16 省略時1
<インターレース> ... 0:インターレース 1:ノンインターレース 省略時現在のモードを維持
関連
機能
画面の指定位置のキャラクターコード、属性を返す。
書式
SCREEN(<水平位置>, <垂直位置> [, <スイッチ>])
解説
スイッチが0の時、キャラクターコードを返す。スイッチが1の時、カラーコード(0~15)+グラフィック(+16)を返す。
機能
引数の符号を返す。
書式
SGN(<引数>)
解説
引数が正なら1、負なら-1、零なら0を返す。
関連
ABS関数
機能
正弦を返す。
書式
SIN(<引数>)
解説
引数はラジアン(-π/2 ~ π/2)
関連
機能
カセットテープ上のファイルの読み飛ばしとチェックを行う。
書式
SKIPF ["[CAS0:][<ファイル名>]"] (省略形はSK.)
解説
LOAD?と同じ機能。
関連
機能
空白の文字列を返す。
書式
SPACE$(<文字数>)
機能
空白を出力する。
書式
SPC(<文字数>)
機能
平方根を返す。
書式
SQR(<数値>)
関連
^ 演算子
機能
プログラムの実行を一時停止する。
書式
STOP
解説
指定した行で実行を停止しコマンド待ちに戻る。CONTコマンドで実行再開できる。
関連
CONTコマンド
機能
数値を文字列に変換する。
書式
STR$(<数値>)
機能
1文字を繰り返した文字列を返す。
書式
STRING$(<文字数>, <文字>)
解説
文字には1文字の文字列もしくはキャラクターコードを指定する。
機能
2つの変数の値を交換する。
書式
SWAP <変数名>, <変数名>
T
機能
指定した水平位置までカーソルを移動する。
書式
TAB(<引数>)
機能
正接を返す。
書式
TAN(<引数>)
解説
引数はラジアン(-π/2 ~ π/2)
関連
機能
ターミナルモードに設定する。
書式
TERM ["<オプション文字列>"]
解説
RS-232Cを介して通信を行う。オプション文字列には以下の項目毎に1文字を選択し文字列にして設定する。
1)クロック ... F/S (F:Fast(1/16) S:Slow(1/64))
2)ワード長 ... 7/8 (7:7ビット 8:8ビット)
3)パリティ ... E/O/N (E:偶数 O:奇数 N:パリティなし)
4)ストップビット ... 1/2 (1:1ストップビット 2:2ストップビット)
5)モード ... H/F (H:半二重 F:全二重)
例:F8N2F ... クロック1/16、8ビット、パリティなし、2ストップビット、全二重
1)クロック ... F/S (F:Fast(1/16) S:Slow(1/64))
2)ワード長 ... 7/8 (7:7ビット 8:8ビット)
3)パリティ ... E/O/N (E:偶数 O:奇数 N:パリティなし)
4)ストップビット ... 1/2 (1:1ストップビット 2:2ストップビット)
5)モード ... H/F (H:半二重 F:全二重)
例:F8N2F ... クロック1/16、8ビット、パリティなし、2ストップビット、全二重
注意
COM0:でのみ使用できる。
機能
内蔵クロックの午前00:00:00からの秒数を返す。
書式
TIME
関連
DATE関数
機能
(1)内蔵クロックの時刻を返す。/ (2)時刻を設定する。
書式
(1) TIME$
(2) TIME$ = "HH:MM:SS"
(2) TIME$ = "HH:MM:SS"
関連
DATE$システム変数
機能
トレースモードのON/OFFを行う。
書式
TRON / TROFF
解説
TRONするとBASICはトレースモードとなり、実行中の行番号を画面に表示ようになる。
U
機能
リスト出力を禁止する。
書式
UNLIST [ <行番号> ]
解説
行番号以降のリスト出力を禁止する。行番号を省略すると全行禁止となる。
機能
ユーザが定義した機械語サブルーチンを呼び出す。
書式
USR[ <番号> ]( <引数> )
解説
DEF USRにて定義した開始アドレスから機械語を実行する。<番号>は0~9。省略すると番号0として処理する。
関連
V
機能
文字列を数値に変換する。
書式
VAL(<文字式>)
機能
変数のデータが格納されている先頭番地を返す。
書式
VARPTR(<変数名>)
機能
ファイル書き込み時のベリファイを指定する。
書式
VERIFY {ON | OFF }
W
機能
指定アドレスが条件を満たすまで実行を停止する。
書式
WAIT <アドレス>, <式1> [, <式2>]
解説
指定したアドレスの値と<式2>のXORをとり、さらに<式1>とANDを取った結果が0以外になるまで実行を停止する。
<式2>を省略した場合これを0として評価する。
<式2>を省略した場合これを0として評価する。
機能
1行あたりの表示文字数を指定する。
書式
WIDTH <水平表示文字数> (省略形はW.)
解説
<水平表示文字数> ... 40 または 80
関連
X
機能
排他的論理和
解説
左辺か右辺のどちらかだけのビットが1ならそのビットが1となる。
例
16 XOR 6 → 22
関連
エラーメッセージ一覧
メッセージ | コード | 内容 |
---|---|---|
Bad Data In File | 58 | ファイル上にあるデータの形式が間違っている。 |
Bad File Descriptor | 55 | ファイル・ディスクリプタにありえないものを指定した。 |
Bad File Mode | 51 | OPEN時のモードと対応しない入出力命令を実行しようとした。 |
Bad File Number | 50 | OPENされていないファイル番号を指定した。 |
Bad File Structure | 71 | [DISK BASIC] ファイル構造が誤っている。(FAT、ディレクトリーがおかしい) |
Bad Record Number | 70 | [DISK BASIC] PUTまたはGETで範囲外のレコード番号を指定した。 |
Buffer Overflow | 61 | 入出力バッファがオーバー・フローした。(ファイルが正しく読めないなど) |
Can't Continue | 17 | CONTコマンドによるプログラムの続行ができない。(ポインタが破壊されている) |
Device I/O Error | 53 | 使用したデバイスの読み込みまたは書き込みにエラーが生じた。 |
Device In Use | 59 | ディスク以外の使用中のデバイスを(コマンドやOPEN命令で)使用しようとした。 |
Device Unavailable | 60 | デバイスが使用可能な状態にない。(インターフェイスは実装されているが、コネクタが接続されていないなど) |
Directory Full | 64 | [DISK BASIC] ディレクトリがいっぱいになったので、ファイルを作成することができない。 |
Direct Statement In File | 56 | ASCIIフォーマットでのLOAD中にダイレクト・ステートメントがあった。(データーファイルをLOADしようとした時など) |
Disk Full | 66 | [DISK BASIC] すべてのグループ(クラスタ)が使用された状態で、さらにファイルの拡張、作成をしようとした。(ユーザー・エリアが残っていない) このエラーが発生したときは、ディスケットをドライブに挿入したまますぐにCLOSEを実行してください。 |
Disk Write Protected | 73 | [DISK BASIC] ライト・プロテクト・ノッチの貼ってあるデイスケットに書き込みを行なおうとした。 |
Division By Zero | 11 | 除算の除数に0が指定された。 |
Drive Not Ready | 72 | [DISK BASIC] 指定されたドライブにディスケットが装着されていない。 |
Duplicate Definition | 10 | 配列またはユーザ関数を二重に定義しようとした。 |
End Of Record | 75 | [5インチ版 DISK BASIC] シーケンシャルファイルをランダムアクセスで開いている時に、レコードの終端に達した。 |
Field Overflow | 68 | [DISK BASIC] FIELD文で、サイズの合計が指定のバイトを越えた。 |
File Not open | 57 | OPENしていないファイルをアクセスしようとした。(ファイルをOPENしないでファイル番号を使う命令を使用しようとした) |
File Already Exists | 67 | [DISK BASIC] 既に同一ディスケット上に存在するファイル名をNAMEコマンドの新ファイル名に指定した。 |
File Already Open | 52 | 既にOPEN状態にあるファイルを再びOPENしようとした。 |
File Not Found | 63 | [DISK BASIC] ディスク上にないファイル名を指定した。 |
For Without Next | 23 | FOR~NEXTが正しく対応していない。(FOR文が多すぎる) |
Illegal Direct | 12 | ダイレクト・コマンドとして使えないステートメントをコマンドとして実行しようとした。 |
Illegal Function Call | 5 | ステートメントの機能の呼び方が誤っている。 (引数が範囲外の値を指定しているなど) |
Input Past End | 54 | ファイルのすべてのデータを読み尽した後にファイル入力文が実行された。 |
Missing Operand | 22 | ステートメント中に必要なパラメータなどが指定されていない。 |
Next Without For | 1 | FOR~NEXTが正しく対応していない。(NEXTが多過ぎるか、2つ以上のFOR~NEXTループが交錯している) |
No Resume | 19 | エラー処理後プログラムの実行を再開することができない。 |
Out Of FIELD Buffers | 74 | [5インチ版 DISK BASIC] FIELD用のバッファが足りない。 |
Out Of Data | 4 | READ文で読まれるべきデータがDATA文の中に用意されていない。(DATA文がないか、DATAを読み尽した後に更にREAD文がある) |
Out Of Memory | 7 | メモリ容量が足りなくなった。(プログラムが長すぎる、配列が大きすぎるなど) |
Out Of String Space | 14 | CLEAR文などで指定したストリング変数用メモリ・エリアが足りなくなった。 |
Overflow | 6 | 演算結果や入力された数値が許容されている範囲からはずれている。 |
Protected Program | 62 | [DISK BASIC] 保護されたプログラムに対して、書き込みや修正を行なおうとした。 |
Resume Without Error | 20 | エラーとRESUMEが対応していない。(エラーがないのにRESUMEした) |
Return Without Gosub | 3 | GOSUB~RETURNが正しく対応していない。(RETURN文だけがある) |
String Formula Too Complex | 16 | 文字式が複雑すぎる。(かっこのネスティングが深すぎるなど) |
String Not Fielded | 69 | [DISK BASIC] LSETまたはRSET文で、代入する文字変数がFIELD定義されていない。または、FIELD文で定義した文字変数にLSET、RSET以外の命令で内容を変更しようとした。 |
String Too Long | 15 | ストリング(引用符で囲まれた文字列)が長すぎる。(255文字を越えた) |
Subscript Out Of Range | 9 | 配列変数の添宇が規定の範囲内にない。 |
Syntax Error | 2 | プログラムが文法にそっていない。プログラム中に規定のステートメント以外のものがあるなど。 |
Too Many open Disk Files | 65 | [DISK BASIC] FCB(ファイル・コントロール・ブロック)の数以上のファイルを同時にOPENしようとした。 |
Type Mismatch | 13 | 式の左辺と右辺、関数の引数などのデータ形式が一致していない。(数値とストリングなど) |
Undefined Line Number | 8 | 必要とされるプログラム行(GOTOの飛び先など)がない。 |
Undefined User Function | 18 | DEFFNで定義されていないユーザ関数を参照しようとした。 |
Unprintable Error | その他 | メッセージの定義されていないエラーが発生した。 |
Verification Error | 76 | [5インチ版 DISK BASIC] 書き込みでベリファイエラー。 |
WEND without WHILE | 25 | WHILEとWENDが正しく対応していない。 |
WHILE without WEND | 24 | WHILEとWENDが正しく対応していない。 |