BASIC-IはSORDが開発したSORD m5 (TAKARA M5)用のBASICである。 BASIC-Iは入門用としてm5に標準装備されていた。 他に別売でBASIC-G(ゲーム用)、BASIC-F(計算用)が用意されていた。 今回はBASIC-Iを取り扱うこととする。 |
BASIC-I 簡易リファレンス | |||
---|---|---|---|
コマンド | |||
表記 | 凡例 | 使用例 | 説明 |
AUTO | AUTO 行番号[,増分] | AUTO 100,5 | 先頭に自動的に行番号を発生させる(増分を省略した場合は10) |
DEL | DEL 行番号[,行番号2] | DEL 100 DEL 100,200 | 指定した行番号を削除する 指定した範囲の行番号を削除する |
LIST | LIST [#2,][行番号[,行番号2]] | LIST LIST 100,200 | メモリ上のプログラムを表示する 指定した範囲の行番号を表示する 「#2,」を付けた場合はプリンタへ印字する |
NEW | NEW | NEW | プログラムを全て消去し、変数を初期化する |
CONT | CONT | CONT | STOPやBREAKキーで終了したプログラムの実行を再開する |
RUN | RUN [行番号] | RUN 100 | 指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から実行する) |
SAVE | SAVE "ファイル名"[,開始アドレス,終了アドレス,モード] | SAVE "test" | カセットテープにプログラム(ファイル名は9文字まで)を保存する モード 0 : メインRAM |
TAPE | TAPE ["ファイル名"] | TAPE "test" | カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む) |
CHAIN | CHAIN ["ファイル名"] | CHAIN "test" | プログラム実行中にカセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む) |
VERIFY | VERIFY ["ファイル名"] | VERIFY "test" | カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する) |
[戻る] | |||
ステートメント:プログラム制御 | |||
表記 | 凡例 | 使用例 | 説明 |
$ | $ラベル | $TEST | 行番号の代わりに使用できるラベルを定義する(使用時は「$」を含めて記述する) |
END | END | END | プログラムを終了する |
STOP | STOP | STOP | プログラムを一時停止する |
REM | REM | REM TEST | 注釈を入れる(実行には無関係) |
FOR...TO...STEP〜NEXT | FOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...] | FOR I=0 TO 10 STEP 2〜NEXT I | FORからNEXTまでの処理を繰り返す |
GOTO | GOTO {行番号 | ラベル} | GOTO 1000 | 指定した{行番号 | ラベル}から実行する |
GOSUB | GOSUB {行番号 | ラベル} | GOSUB 1000 | サブルーチンを呼び出す |
RETURN | RETURN [{行番号 | ラベル}] | RETURN | サブルーチンから復帰する |
IF...THEN...ELSE | IF 論理式 THEN {文 | {行番号 | ラベル}} ELSE {文 | {行番号 | ラベル}} | IF A=0 THEN 10 ELSE PRINT A | 論理式の条件判断をする |
[戻る] | |||
ステートメント:変数関連 | |||
表記 | 凡例 | 使用例 | 説明 |
INPUT | INPUT [文字列{; | , }]変数[,変数2][,...] | INPUT "X=";X | キーボードから入力した値を変数に代入する |
LET | LET 変数=式 | LET A=1 | 変数に値を代入する(LETは省略できる) |
DATA | DATA 定数[,定数2][,...] | DATA "TEST",765 | READで読み込むデータを定義する |
READ | READ 変数[,変数2][,...] | READ A$,B | DATAで定義したデータを変数に代入する |
RESTORE | RESTORE [{行番号 | ラベル}] | RESTORE 1000 | READで読み込むDATAの先頭行を設定する |
DIM | DIM 変数名(最大値[,最大値2][,...])[,...] | DIM A(100,10),B$(100) | 配列変数の定義をする |
RANDOMIZE | RANDOMIZE | RANDOMIZE | 乱数系列を設定する |
[戻る] | |||
ステートメント:マシン語関連 | |||
表記 | 凡例 | 使用例 | 説明 |
CALL | CALL 変数 | CALL A | 指定したアドレスのマシン語を実行する |
POKE | POKE アドレス,数式 | POKE &1000,&C9 | 指定したアドレスに値を書き込む |
VPOKE | VPOKE アドレス,数式 | VPOKE &3000,&FF | 指定したVRAMアドレスに値を書き込む |
OUT | OUT ポート,数式 | OUT 0,255 | 指定ポートにデータを送信する |
[戻る] | |||
ステートメント:画面関連 | |||
表記 | 凡例 | 使用例 | 説明 |
CLS | CLS | CLS | 画面を消去する |
PRINT [#2,][式[{, | ;}[式2...]]] | PRINT "HELLO,WORLD" | 画面上に表示する ※ 「#2,」を付けた場合はプリンタに印字する | |
VIEW | VIEW X1,Y1,X2,Y2 | VIEW 0,0,31,23 | 画面の表示領域を設定する |
LOC | LOC スプライト番号 TO X,Y | LOC 0 TO 0,0 | スプライトを表示するスプライト番号 : 0〜31 |
STCHR | STCHR パターン文字列 TO 文字コード,モード | STCHR A$ TO 0,1 | キャラクタパターンや色を割り当てる ※ GIIモード以外では使用不可 |
SCOD | SCOD スプライト番号,文字コード | SCOD 0,255 | スプライトに図形コード(0〜255)を割り当てる |
SCOL | SCOL スプライト番号,カラーコード | SCOD 0,10 | スプライトのカラーコードを指定する |
MAG | MAG サイズ(0〜3) | MAG 0 | スプライトのサイズを指定する0 : 8×8 |
[戻る] | |||
文字列関数 ※変数型 | |||
表記 | 凡例 | 使用例 | 説明 |
ASCII | ASCII(文字列式) | ASCII("TEST") | 文字列先頭のキャラクタコードを返す |
VAL | VAL(文字列式) | VAL("123") | 文字列を数値に変換する |
CHR$ | CHR$(数式) | CHR$(41) | 指定したキャラクタコードの文字を返す |
NUM$ | NUM$(数式) | NUM$(A) | 数値を文字列に変換する |
HEX$ | HEX$(数式) | HEX$(255) | 10進数を16進数文字列に変換する |
LEN | LEN(文字列式) | LEN(A$) | 文字列の文字数を返す |
LEFT$ | LEFT$(文字列式,式) | LEFT$(A$,2) | 文字列の左側から式で指定した桁数の文字列を返す |
MID$ | MID$(文字列式,式1[,式2]) | MID$(A$,2,1) | 文字列の式1で指定した位置から式2で指定した桁数の文字列を返す |
RIGHT$ | RIGHT$(文字列式,式) | RIGHT$(A$,2) | 文字列の右側から式で指定した桁数の文字列を返す |
[戻る] | |||
数値関数 ※演算子 | |||
表記 | 凡例 | 使用例 | 説明 |
SGN | SGN(数式) | SGN(A) | 数式の符号を返す |
RND | RND(数式) | RND(A) | 数式未満の乱数を返す |
ABS | ABS(数式) | ABS(-1000) | 絶対値を返す |
[戻る] | |||
その他関数 | |||
表記 | 凡例 | 使用例 | 説明 |
TAB | TAB(数式) | TAB(A) | 指定した位置まで空白を返す(出力文字式内でのみ使用) |
CURSOR | CURSOR(X,Y) | PRINT CURSOR(10,10);"test" | 表示位置を指定する(出力文字式内でのみ使用) |
INKEY$ | INKEY$ | INKEY$ | 押されたキーの値を返す |
TIME | TIME | TIME | 内蔵タイマ(電源ONからの時間:単位s 最大値32768でループ)を返す |
INP | INP(ポート番号) | INP(100) | 指定したポート番号の入力値を返す |
PEEK | PEEK(アドレス) | PEEK(&1000) | 指定したアドレスの値を返す |
VPEEK | VPEEK(アドレス) | VPEEK(&3000) | 指定したVRAMアドレスの値を返す |
FRE | FRE(機能コード) | FRE(0) | 指定したメモリサイズを返す 機能コード 0 : BASICの作業領域 |
[戻る] |
※ PRINT
; : 式を続けて表示する(A;B)
例 1;2
1 2
, : 式をTABで区切って表示する(A,B)
例 1,2
1 2
モードの変更などもPRINTで行う
SHIFT+CTRLで入力できる特殊文字を使う
キー | コード | 機能 | 表示 |
---|---|---|---|
― | &00 | ― | |
A | &01 | ― | A |
B | &02 | カーソル行の先頭に移動 | B |
C | &03 | 下スクロール | C |
D | &04 | 左スクロール | C |
E | &05 | 上スクロール | E |
F | &06 | 右スクロール | F |
G | &07 | ベルを鳴らす | G |
H | &08 | バックスペース | H |
I | &09 | タブ | I |
J | &0A | 行送り | J |
K | &0B | ホーム | K |
L | &0C | 画面消去 | L |
M | &0D | [RETURN] | M |
N | &0E | カーソルを現在行の次の先頭へ移動 | N |
O | &0F | 標準モード | O |
P | &10 | 挿入モード | P |
Q | &11 | マルチカラーモード | Q |
R | &12 | GIIモード | R |
S | &13 | GIモード | S |
T | &14 | テキストモード | T |
U | &15 | 表画面へ戻る | U |
V | &16 | 裏画面へ移動 | V |
W | &17 | [RETURN] | W |
X | &18 | カーソル位置から右端まで削除 | X |
Y | &19 | 表示画面切替(書込不可) | Y |
Z | &1A | 書込画面切替 | Z |
( | &1B | ― | |
\ | &1C | カーソルを右へ移動 | → |
) | &1D | カーソルを左へ移動 | ← |
^ | &1E | カーソルを上へ移動 | ↑ |
- | &1F | カーソルを下へ移動 | ↓ |
※ STCHR
STCHR パターン文字列 TO 文字コード,モード
GIIモード以外で使用するとエラー5になる
パターンはモードによって意味が変わる
モード
1〜3 : ユーザ定義による文字パターン
4〜6 : 色指定
画面を3分割して上から4〜6の順に指定し、そこに表示される指定した文字の色を定義する
色コードは2桁の数字で8個指定し、1つが1行(dot)の色になる
最初の数字は描画色で2番目は背景色になる
0 | Clear |
1 | Black(背景色のデフォルト) |
2 | Green |
3 | Light Green |
4 | Dark Blue |
5 | Light Blue |
6 | Dark Red |
7 | Cyan |
8 | Red |
9 | Light Red |
10 | Dark Yellow |
11 | Light Yellow |
12 | Dark Green |
13 | Magenta |
14 | Gray(文字色のデフォルト) |
15 | White |
※ 定数型・変数型
整数型のみで、-32767〜32767までが指定できる範囲である
A$ : 文字列型(A$="TEST")
& : 16進数形式(&FFFF)
※ 演算子
+ : 加算・結合(A+B、A$+B$)
- : 減算(A-B)
* : 乗算(A*B)
/ : 除算(A/B)
MOD : 整数の剰余(A MOD B)
^ : べき算(A^B)
= : 等号・代入(A=3、A=B+C)
> < : 不等号・比較(A>3、A<=2)
NOT : 否定(NOT 2)
AND : 論理積(2 AND 1)
OR : 論理和(2 OR 1)
XOR : 排他的論理和(2 XOR 1)
エラーメッセージ一覧 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
番号 | 意味 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | NEXTに対応したFORがない | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | コマンド、またはステートメントの書き方が間違っている | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | サブルーチン内でCLEARを使った、またはRETURNに対応したGOSUBがない | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | READに対応したDATAがない | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | 引数の値が異常 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | 値が許容範囲を超えた | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | メモリが不足している | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | 未定義の行番号を指定した | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | 配列の添字が異常 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | 配列を2重定義しようとした | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | 除算の分母が0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | ダイレクトステートメントが実行できない | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | 変数または定数の型が合わない | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | スタック(文字列領域)が不足している | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | 文字式が長すぎる | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | 未定義の配列を使用した | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | ラベルが2重定義されている |